【ISSUE】[TypeScript]never型とは

0

2024年12月23日 8:40

never型とは

「値をもたない」を意味する特殊な型。
never型は、通常、関数が正常に終了しないことを示す型です。
以下がサンプルコードです。
img
このコードは、継承した U 型と一致する型を T 型の中から除外する型定義です。
ここでは、「type foo」の中で宣言された「Exclude」の第二引数に、「boolean」型が渡されているため、Foo 型は 「string | number」となります。

never型が多く使われる場面

never 型は主に、以下のように使われることが多い。

エラーのスロー(throwError関数)

img
このthrowError関数は、常にエラーをスローして例外的な状態に移行することが期待されます。
このような関数は、戻り値がないため、never型を返します。これにより、コンパイラはこの関数が例外をスローすることを理解し、他の部分でこの関数を呼び出す際には注意が必要であることを示唆します。

無限ループ(forever関数)

img

このforever関数は、条件が常に真であるため、終了しない無限ループを含んでいます。
このような関数もまた、正常に終了しないため、never型を返します。この型情報を使うことで、コンパイラはこの関数が終了しないことを理解し、他のコードとの統合や実行フローの解析において役立ちます。

また、以下のように存在しないことが保証される型を表現することもできる。
img
このコードでは、引数Tの中身が、「null」または「undefined」の場合に、「never」型を返し、それ以外であれば、引数の型を定義するコードです。
null, undefinedの場合に、never型を適用させることで、存在しないことが保証されることを定義するために、never型を使用します。

最後に

他にも色々な記事を書いているので、よければ読んでいってください、、、

https://qiita.com/hukuryo/items/97797a91d7e2ee0bcabc

https://qiita.com/hukuryo/items/2c07c52ff3386d5d75b9

https://qiita.com/hukuryo/items/ebeb26823f944f143b11
[cv:issue_marketplace_engineer]

0

診断を受けるとあなたの現在の業務委託単価を算出します。今後副業やフリーランスで単価を交渉する際の参考になります。また次の単価レンジに到達するためのヒントも確認できます。