オントロジーファンクション基礎的なTypeScript未定義の値の処理

注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

未定義の値の処理

以下は、プロパティやリンクへのアクセス結果として返される可能性がある undefined 値を処理するための2つの有用なパターンです。

明示的なチェック

Copied!
1 2 3 4 5 6 7 8 9 10 @Function() // 従業員のフルネームを取得する関数 public getFullName(employee: Employee): string { // 従業員の名前と姓が定義されていない場合、エラーをスローする if (!(employee.firstName && employee.lastName)) { throw new UserFacingError("Cannot derive full name because either first or last name is undefined."); } // 従業員の名前と姓を結合してフルネームを返す return employee.firstName + " " + employee.lastName; }

firstNamelastName の両フィールドが定義されていることを確認することで、TypeScript コンパイラは最終行の return ステートメントが正しくコンパイルできることを認識します。このアプローチの利点は、型チェックがより明示的であり、undefined 値が存在する場合に、何が間違っていたのかについてより明確なエラーをスローできることです。

非 null アサーション演算子

undefined のケースを無視するために、TypeScript の非 null アサーション演算子 (!) を使用することができます。

Copied!
1 2 3 4 5 6 @Function() // この関数は、従業員のフルネームを返す機能を提供します。 public getFullName(employee: Employee): string { // 従業員の名前と姓を結合してフルネームを作成します。 return employee.firstName! + " " + employee.lastName!; }

このアプローチは単に TypeScript コンパイラをオーバーライドし、アクセスしているフィールドが定義されていることを主張します。これにより、コードがより簡潔になりますが、フィールドの一つが undefined であることが判明した場合、謎のエラーを引き起こす可能性があります。可能な場合は、明示的なチェックを行うことをお勧めします。