Javascript 带有自己道具的已连接组件的TypeScript警告
我有两个组件(智能和哑),如下所示:Javascript 带有自己道具的已连接组件的TypeScript警告,javascript,reactjs,typescript,redux,react-redux,Javascript,Reactjs,Typescript,Redux,React Redux,我有两个组件(智能和哑),如下所示: // Container component file... interface OwnProps { id: Id; } function mapStateToProps(state: State, ownProps: OwnProps) { return { isActive: ... }; } export const Container: any = connect(mapStateToProps, null)(DumbCompon
// Container component file...
interface OwnProps {
id: Id;
}
function mapStateToProps(state: State, ownProps: OwnProps) {
return { isActive: ... };
}
export const Container: any = connect(mapStateToProps, null)(DumbComponent);
// Dumb component file...
interface DumbComponentProperties {
isActive: boolean;
}
export class DumbComponent extends React.Component<DumbComponentProperties, {}> {
...
}
//容器组件文件。。。
界面道具{
id:id;
}
函数mapStateToProps(状态:state,ownProps:ownProps){
返回{isActive:…};
}
export const Container:any=connect(mapStateToProps,null)(DumbComponent);
//哑组件文件。。。
接口组件属性{
isActive:布尔型;
}
导出类组件扩展了React.Component{
...
}
我在connect
内部的DumbComponent
下得到一个红色的蠕动警告:
类型为“typeof DumbComponent”的参数不能分配给的参数
输入'Component OwnProps&{isActive:boolean;
}“…>
如果我通过
id?
将id
设置为可选,这将修复错误。这看起来像是TypeScript认为DumbComponent
也需要OwnProps
类型,因为id
是作为一个道具传递给它的?我不明白为什么会出现这种情况,不仅仅是属性是活动的
被传递到DumbComponent
?我看不出您的代码有任何问题,但是键入函数mapStateToProps函数是一种很好的做法,比如
函数mapStateToProps(状态:state,ownProps:ownProps):DumbComponentProperties{
返回{isActive:…};
}
类型State和Id在哪里定义?它们是在商店中定义的。我不相信这些信息与我的问题有关。这很奇怪,因为如果我为这些类型填写简单的接口,代码实际上对我有效..嗯。。。。我会再看一看,但我想我只是几乎复制了所有东西,并更改了名称以匿名化这些东西