ReactのES6 クラス API をReact.Component
(TypeScript を使用して) 使用しており、タイプを使用してサブタイプ化されたクラスをレンダリングしたいと考えていますReactDOM.render()
。
次のコードが機能します。
class MyComponentProps {
someMember: string;
}
class MyComponent extends React.Component<MyComponentProps, {}> {
constructor(initialProps: MyComponentProps) {
super(initialProps);
}
}
let rootNode = document.getElementById('root');
ReactDOM.render(
<MyComponent someMember="abcdef" />,
rootNode
)
ここで、 のコンストラクターの明示的な型付けをreact.d.ts
考えると、(上記のコードで行ったように) 初期プロパティを設定する MyCustomProps オブジェクトのインスタンスを渡すことができると思います。しかし、コンポーネントを JSX/TSX 構文なしで直接レンダリングする方法は?
以下は機能しません。
ReactDOM.render(new MyComponent(new MyComponentProps()), rootNode);
回避策として JSX 構文を使用できることはわかっていますが、MyCustomProps
オブジェクトがかなり大きいため、オブジェクトのすべてのメンバーを繰り返したくありませんMyCustomProps
。