Javascript 如何正确使用Typescript中的接口

Javascript 如何正确使用Typescript中的接口,javascript,reactjs,typescript,interface,react-redux,Javascript,Reactjs,Typescript,Interface,React Redux,我遇到了一个关于接口和类型脚本的问题。下面是一个例子: 从“React”导入*作为React /* *用于描述react组件属性的接口。 */ 接口IUNSaeceComponentProps{ 组件:iunseacecomponent/&typeof React.component; } /* *用于描述允许呈现的每个组件的接口。 *它需要定义一个名为“componentName”的属性。 */ 导出接口IUNSaffect组件{ 组件名称:字符串; 组件样式?:{}; } /* *React

我遇到了一个关于接口和类型脚本的问题。下面是一个例子: 从“React”导入*作为React

/*
*用于描述react组件属性的接口。
*/
接口IUNSaeceComponentProps{
组件:iunseacecomponent/&typeof React.component;
}
/*
*用于描述允许呈现的每个组件的接口。
*它需要定义一个名为“componentName”的属性。
*/
导出接口IUNSaffect组件{
组件名称:字符串;
组件样式?:{};
}
/*
*React组件本身用于呈现不安全组件。
*/
导出类UnsefectComponent扩展React。组件实现IUNSfectComponent{
公共组件名称:字符串;
构造器(道具:iUnsafectComponentProps){
超级(道具);
this.componentName=“未完成组件”;
}
public render():JSX.Element{
回来
}
}
使用这种包装器的原因是允许在我的应用程序中呈现第三方代码。如果我现在尝试使用该组件:

let content = <UnsafeComponent component={UnsafeComponent}/>;
ReactDOM.render(content, document.getElementById("root"));
let content=;
render(content,document.getElementById(“根”);
我收到以下错误消息:

类型“typeof UnsafectComponent”不可分配给类型“IunsafectComponent”

[0]类型“typeof UnsafectComponent”中缺少属性“componentName”


我真的不知道为什么我的声明是错的。我对Typescript/Javascript很陌生。也许我在这里犯了一些非常基本的错误。

这个声明说您需要一个
iUnsafectComponent
的实例:

interface IUnsafeComponentProps {
    component: IUnsafeComponent //& typeof React.Component;
}
<UnsafeComponent component={UnsafeComponent}/>;
interface IUnsafeComponentProps {
    component: new(...args: any[]) => IUnsafeComponent;
}
在这里,您传递了
未完成组件的构造函数:

interface IUnsafeComponentProps {
    component: IUnsafeComponent //& typeof React.Component;
}
<UnsafeComponent component={UnsafeComponent}/>;
interface IUnsafeComponentProps {
    component: new(...args: any[]) => IUnsafeComponent;
}

另请参见关于JSX组件引用如何指向类构造函数而不是类实例的内容。

此声明表示您需要一个
iUnsafectComponent
的实例:

interface IUnsafeComponentProps {
    component: IUnsafeComponent //& typeof React.Component;
}
<UnsafeComponent component={UnsafeComponent}/>;
interface IUnsafeComponentProps {
    component: new(...args: any[]) => IUnsafeComponent;
}
在这里,您传递了
未完成组件的构造函数:

interface IUnsafeComponentProps {
    component: IUnsafeComponent //& typeof React.Component;
}
<UnsafeComponent component={UnsafeComponent}/>;
interface IUnsafeComponentProps {
    component: new(...args: any[]) => IUnsafeComponent;
}

另请参见关于JSX组件引用如何指向类构造函数,而不是类实例的内容。

如果我想传递实现IUNSeaceComponent和typeof React.component的对象的构造函数,我将如何组合它?阅读您的链接后,我尝试了
组件:新建(…args:any[])=>iUnsafectComponent&React.Component
但是我无法访问
componentName
属性,我在以下调用方代码上得到错误:
{this.props.Component.componentName}
->“属性'componentName'在类型'new(…args:any[])=>iUnsafectComponent&Component'上不存在。”如果我想传递一个实现iUnsafectComponent和typeof React.Component的对象的构造函数,我该如何组合它?在阅读了你的链接后,我用
Component:new(…args:any[])=>iUnsafectComponent和React.Component
尝试了它,但我无法访问
componentName
属性,我在以下调用方代码中得到错误:
{this.props.component.componentName}
->“属性'componentName'在类型'new(…args:any[])=>iunseafectcomponent&component'上不存在。”