reactjs - 如何满足Record的约束带接口
问题描述
我的 linter 说我不应该在 TS 中使用 object 作为类型。但是,我正在使用的库要求扩展对象的泛型类型。
因此,我正在使用如下所示的库编写一个通用组件:
const Component = <T extends object>(props: CustomProps<T>): React Element => etc.
由于 linter 在抱怨,我尝试将其切换为
const Component = <T extends Record<string, unknown>>(props: CustomProps<T>): React Element => etc.
但是,如果我再做这样的事情:
interface MyInterface {
something: string;
goes: number;
here: string;
}
const CallerComponent = () => Component<MyInterface> />
TS 说 MyInterface 不满足约束 Record<string, unknown>。除了做之外还有什么办法吗
interface MyInterface extends Record<string, unknown>
我宁愿不必遍历整个代码库,将它添加到每个接口,所以很高兴知道是否有一种方法可以在我说 T 肯定是一个对象的地方输入它。
提前感谢您的帮助。
解决方案
我遇到了同样的问题,发现你可以用type
而不是声明你的对象interface
,它解决了它。
在您的情况下,它将是:
type MyInterface = {
something: string
goes: number
here: string
}
推荐阅读
- r - 将 R 循环的结果写入 csv
- azure - 将旧版 Web 应用程序与 Azure AD B2C 集成
- .net - 将 SQL 数据表传递给 Word 模板文档中预先设计的 Word 表
- vba - ADODB.Recordset : 对象关闭时不允许操作
- rest - 更新 Azure DevOps Wiki 页面使用 powershell
- javascript - 未定义代表 querySelector 类的变量 Nightmare.js
- visual-studio - 在 Subversion 中构建 Visual Studio 解决方案并保留项目引用
- python-3.x - 类型错误:get_token() 缺少 1 个必需的位置参数:'bs4'
- ios - 支持 UITextView 属性字符串中动态设置的字体
- javascript - 如何用Javascript中另一个数组的值更改数组中的特定非零值