React/TypeScriptにおけるJSX element has no corresponding closing tagの解決法
.tsでジェネリクスを使用して,アロー関数の型宣言を行う方法
const hello = <T>(name: T) => { return name; } // hello<string>("igarashi");
これをそのままjsxに記述すると<T>がコンポーネントとして認識されてしまい,
TS17008: JSX element 'T' has no corresponding closing tag.
とアラートが表示される.
tsxでジェネリクスを使用して,アロー関数の型宣言を行う方法
https://github.com/Microsoft/TypeScript/issues/15713 で議論されているように型宣言では以下のように記述する.
<P extends {}>or<P extends object>
上記のプログラムに反映すると
let hello = <T extends Object>(name: T) => { return name; }; let hello = <T extends {}>(name: T) => { return name; };