网站搜索

javascript - 在 TypeScript 中覆盖第三方类型定义


我的疑问是如何仅使用 d.ts 文件覆盖第三方包(在我的情况下是 @mui)提供的类型定义

使用案例:

我想指出所有按钮组件的 id 属性是必需的,这样任何使用按钮的开发者都将知道需要提供一个 Id

我尝试过一个 *d.ts 文件,内容大概是这样的:

declare module '@mui/material/ButtonBase' {
 interface ExtendButtonBaseTypeMap<M extends OverridableTypeMap> {
     props: { id: string }
     defaultComponent: M['defaultComponent']
 }
}

但是没有用 :(

关于 chakra-ui,我知道这样是可行的:

declare module React {
 interface ButtonHTMLAttributes {
     id: string
 }
}