Reactjs Typescript自定义类型声明出错
我编写了以下类型声明: 错误TS2345:类型为“typeof Application”的参数不可赋值 到“Component”类型的参数。属性“setState”为 “应用程序类型”类型中缺少Reactjs Typescript自定义类型声明出错,reactjs,generics,typescript,Reactjs,Generics,Typescript,我编写了以下类型声明: 错误TS2345:类型为“typeof Application”的参数不可赋值 到“Component”类型的参数。属性“setState”为 “应用程序类型”类型中缺少 我很好奇这里出了什么问题。之所以发生这种情况,是因为r的第一个参数是一个具有签名的类/构造函数React.Component,而不是React.Component 因此,切换到以下选项可以修复错误: interface IRDOMFacade extends React.ReactDOM { (
我很好奇这里出了什么问题。之所以发生这种情况,是因为r的第一个参数是一个具有签名的类/构造函数
React.Component
,而不是React.Component
因此,切换到以下选项可以修复错误:
interface IRDOMFacade extends React.ReactDOM {
(
component: new (...args: any[]) => React.Component<any, any>,
properties?: Object,
children?: React.ReactElement<any>|Array<React.ReactElement<any>>
): React.ReactElement<any>
}
接口IRDOMFacade扩展了React.ReactDOM{
(
组件:新建(…args:any[])=>React.component,
属性?:对象,
子元素?:React.ReactElement |数组
):React.React元素
}
我将把它打开几天,以防有人有更惯用的解决方案。这是因为r的第一个参数是一个具有签名
React.Component
的类/构造函数,而不是React.Component
的实例
因此,切换到以下选项可以修复错误:
interface IRDOMFacade extends React.ReactDOM {
(
component: new (...args: any[]) => React.Component<any, any>,
properties?: Object,
children?: React.ReactElement<any>|Array<React.ReactElement<any>>
): React.ReactElement<any>
}
接口IRDOMFacade扩展了React.ReactDOM{
(
组件:新建(…args:any[])=>React.component,
属性?:对象,
子元素?:React.ReactElement |数组
):React.React元素
}
我将把这个打开几天,以防有人有更惯用的解决方案
r(Application)
interface IRDOMFacade extends React.ReactDOM {
(
component: new (...args: any[]) => React.Component<any, any>,
properties?: Object,
children?: React.ReactElement<any>|Array<React.ReactElement<any>>
): React.ReactElement<any>
}