我会保持简短。使用Typescript 2.7.2和“”@ types / react“:”^ 16.0.40“,”
在尝试防范React Component实例时遇到了非常糟糕的问题。
考虑组件
IFooProps {
element: SomeType
}
...component<IFooProps> {
....
render() {
return (
react.cloneElement(element, {onClick: this.myOnClickHandler});
)
}
}
如果element是反应组件实例,则onClick将应用于实例,而不是永远运行。但是如果它是一个有效的元素类型I.E div,input,span等onClick将被克隆到元素上并运行正常。
我用什么类型替换“SomeType”以允许JSX元素,如div,span,input等......但不是Component实例。
<Foo element={<Bar/>} should fail typecheck
<Foo element{<div/>} should pass typecheck
iv'e尝试过ReactNode,ReactElement,ReactHTML,JSX.Element等等,似乎没有什么可以直接打字检查它。