我遇到类React.ComponentClass
类型的类。
我的TypeScript版本是2.4.2-
我的组件是这样的:
import * as React from 'react';
import { injectIntl, InjectedIntlProps } from 'react-intl';
interface IBlahProps extends InjectedIntlProps {
}
class BlahBase extends React.Component<IBlahProps> {
}
const Blah = injectIntl(BlahBase);
export default Blah;
一切正常。
但是当我像这样消费该组件时:
render() {
return <Blah />
}
<Blah />
下划线表示截图如下:
[ts]类型“ {}”不可分配给类型
“只读”。类型“ {}”中缺少属性“ intl”。
导入Blah
我如何理解这种情况,以及如何解决?我不想做<Blah intl={intl} />
。
index.d.ts
的{{1}}看起来像这样:
injectIntl
我可以通过将接口从扩展function injectIntl<P>(component: ComponentConstructor<P & InjectedIntlProps>, options?: InjectIntlConfig):
React.ComponentClass<P> & { WrappedComponent: ComponentConstructor<P & InjectedIntlProps> };
更改为以下类型来解决此问题:
InjectedIntlProps
但是我不知道为什么扩展type IBlahProps = InjectedIntlProps & {
}
不能解决问题。