reactjs - 存在装饰器时忽略重载丢失
问题描述
我在 React 中使用带有 TypeScript 的实验性装饰器。
我用于表单的库来自 Ant Design,装饰器form
向我的组件插入了一个属性。
我有这样的Component
声明:
interface IProps {
form: any
}
@Form.create()
class Component extends React.Component<IProps> { ... }
现在,当我想在没有这样的form
属性的情况下使用该组件时
<Component/>
我收到以下 TS 错误
TS2769
没有重载匹配此调用。
Overload 1 of 2, '(props: Readonly): Component', 给出了以下错误。“{}”类型中缺少属性“form”,但在“只读”类型中是必需的。
Overload 2 of 2, '(props: IProps, context?: any): Component',给出了以下错误。“{}”类型中缺少属性“form”,但在“只读”类型中是必需的。
现在我可以form
使用符号使属性为可选?
,但它不是很好,当我想进一步输入form
时
interface IFields {
"name": string;
}
interface IProps extends FormComponentProps<IFields> { ... }
它真的变得不可行。
我必须以什么方式告诉 TypeScript 该form
属性是通过装饰器注入的?
解决方案
推荐阅读
- php - 如何隐藏img源IP?
- java - 图层列表上的右下角黑色
- python - 在我输入的某些路径中保存文件时出现问题
- python - 如何在 django rest 框架中序列化不同的查询集?
- swift - 将无效 URL 解码为 nil
- python - 在python的matplotlib中用鼠标拖动和移动图形线
- node.js - 为什么 CPU 使用率达到 80% 时 npm 包 pm2 无法重启?
- angular - 使用 Injector 进行测试服务
- spring - 弹簧理解中的自动装配
- php - 在 YII2 中使用自动注销,需要在再次登录后将用户重定向到用户在自动注销之前的相同 URL