以下の内容はhttps://www.pandanoir.info/entry/2021/11/20/112646より取得しました。


T extends unknown が no-unnecessary-type-constraint でできない

TSX のなかでジェネリクスを書くとき、<T> の代わりに <T extends unknown> と書くテクニックは有名ですよね

const f = <T>(n: T) => n; // <T> が JSX として認識されてコンパイルできない

const g = <T extends unknown>(n: T) => n; // これは OK

しかし、 @typescript-eslint/no-unnecessary-type-constraint というリントルールを有効化していると、この書き方はエラーになります。まあ、extends unknown は意味ないですから当然ですよね…

ではどうすれば良いかと言うと、<T, >と書くと良いです。

const h = <T,>(n: T) => n; // <T,> は JSX として認識されないので OK

(この記事は sunnyone さんのツイートを参考にしています)




以上の内容はhttps://www.pandanoir.info/entry/2021/11/20/112646より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14