TypeScript での never キーワードの使用
このチュートリアルでは、TypeScript never
キーワードでの新しいデータ型の使用に関する簡単なガイドラインを、開発者の間で使用されている一般的なユース ケースと共に提供します。
TypeScript での never
キーワードの使用
never
キーワードは TypeScript の新しい型で、発生しない値を指定します。 never
タイプは、プログラマーが何かが起こらないと確信している場合に使用されます。
ここで、常に例外をスローするか、エンドポイントに戻らない関数を作成することを考えてみましょう。
コード例:
function throwNewError(errorMsg: string): never {
throw new Error(errorMsg);
}
function keepInfiniteProcessing(): never {
while (true) {
console.log('I always does something and never ends :).')
}
}
console.log(throwNewError("Error occured"));
上記のコーディング例では、throwNewError()
関数は呼び出されると常にエラーをスローします。一方、keepInfiniteProcessing()
関数は常に実行を続け、エンドポイントに到達することはありません。 while ループには、ループを決して終了させず、終了させない真の条件があります。 したがって、TypeScript の never
型は、関数から発生したり返されたりしない値を指定するために使用されます。
出力:
変数は、真にならない any
型のガードによって狭められると、never 型も取得します。 変数の型は、in
、typeof
、instanceof
などの演算子で絞り込むことができます。
これらがどこかで発生しないことが確実な変数の型を絞り込むことができます。
コード例:
function formatFunction(valueData: string | number) {
if (typeof valueData === 'string') {
return valueData.trim();
} else {
return valueData.toFixed(2); // we're sure it's number
}
// not a string or number
// "value" can't occur here, so it's type "never"
}
let response = formatFunction("Hello");
console.log(response);
出力:
Ibrahim is a Full Stack developer working as a Software Engineer in a reputable international organization. He has work experience in technologies stack like MERN and Spring Boot. He is an enthusiastic JavaScript lover who loves to provide and share research-based solutions to problems. He loves problem-solving and loves to write solutions of those problems with implemented solutions.
LinkedIn