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;
};