Reactjs 在react,中使用typescript;无状态组件不可分配给类型';React.SFC';
打字稿:2.8.3Reactjs 在react,中使用typescript;无状态组件不可分配给类型';React.SFC';,reactjs,typescript,Reactjs,Typescript,打字稿:2.8.3 @类型/反应:16.3.14 返回函数组件的类型是JSX.Element,当我将组件声明为React.SFC(别名为React.statelements) 出现了三个错误: TS2322:类型“Element”不可分配给类型“statelementcomponent”,类型“Element”提供的签名与之不匹配“(props:{children?:ReactNode;},context?:any):ReactElement ) } LayoutHeaderItem.prop
@类型/反应:16.3.14
返回函数组件的类型是
JSX.Element
,当我将组件声明为React.SFC
(别名为React.statelements
)
出现了三个错误:
TS2322:类型“Element”不可分配给类型“statelementcomponent”,类型“Element”提供的签名与之不匹配“(props:{children?:ReactNode;},context?:any):ReactElement
)
}
LayoutHeaderItem.propTypes={
朗:弦,
activeHref:string,
名称:string,
href:string,
i18n:阵列
}
LayoutHeaderItem.defaultProps={i18n:['cn','en']}
返回类型不是组件,函数本身是组件:
const LayoutHeaderItem: React.SFC<LayoutHeaderItemProps> =
(props: LayoutHeaderItemProps) => {
// ...
}
返回类型不是组件,函数本身是组件
const LayoutHeaderItem:React.SFC=(props:LayoutHeaderItemProps)=>{…}
@AlekseyL。谢谢你的回答。不客气@阿列克塞尔。有没有一个特别的原因,为什么很多人不写答案,而是作为一个评论?我真的很好奇,因为我在电视上看到了很多stackoverflow@Truntle没有特别的原因。有时问题需要澄清。作为答案发布:)为了使用React.StatelessComponent
必须使用ES6 Arrow函数语法吗?我也希望使用function(){}
function声明语法。@MichaelR您不能按原样将其用于函数。相关建议。如果确实需要使用函数,则需要分别键入参数和返回类型(parameters
和ReturnType
可以使用助手)
const LayoutHeaderItem: React.SFC<LayoutHeaderItemProps> =
(props: LayoutHeaderItemProps) => {
// ...
}
const LayoutHeaderItem: React.FC<LayoutHeaderItemProps> =
(props: LayoutHeaderItemProps) => {
// ...
}