JSXとTypescriptの統合に関する質問があります。次のコードを考える:ReactTypeをJSXで使用
interface Props {
component?: React.ReactType
}
class MyComponent extends React.Component<Props, void> {
render() {
var Comp = this.props.component
return (<Comp></Comp>)
}
}
私が手:JSX element type 'Comp' does not have any construct or call signatures.
がどのように私はこの問題を解決するのですか?同様のコードは、component
にelementType
小道具react-prop-typesの小冊子バリデータがあるので、文字列かコンポーネントクラスのどちらでもかまいません。
しかし、私も文字列が欲しい、それは反応javascriptで許可されています。 – user3250645
@ user3250645あなたはtypescriptを使用しないでください。あなたが入力することができない多くの正しいプログラムがあります。それはトレードオフですが、表現の自由を失っても安全性は増します。 –
問題は言語としてのtypescriptとは関係ありません。明らかに、そのタイプシステムは、必要なもの(すなわち、ReactType)を表現するのに十分柔軟である。問題は、JSX.ElementクラスのJSXパーサーでJSX.Elementクラスが必要であることと、ReactType(単純な文字列を意味する)とJSX.Element(React.Componentが必要)がどのように橋渡しをしているかわかりません。私はそれが可能であると確信しています。 – user3250645