オブジェクト型のオプションプロパティ (optional property)
TypeScriptで、オブジェクトプロパティのオプショナルを型付けするには、プロパティ名の後ろに?
を書きます。
ts
letsize : {width ?: number };
ts
letsize : {width ?: number };
オプションプロパティを持ったオブジェクト型には、そのオプションプロパティを持たないオブジェクトを代入できます。
ts
size = {}; // OK
ts
size = {}; // OK
また、オプションプロパティの値がundefined
のオブジェクトも代入できます。
ts
size = {width :undefined }; // OK
ts
size = {width :undefined }; // OK
しかし、オプションプロパティの値がnull
の場合は代入できません。
ts
Type 'null' is not assignable to type 'number | undefined'.2322Type 'null' is not assignable to type 'number | undefined'.size = {: null }; width
ts
Type 'null' is not assignable to type 'number | undefined'.2322Type 'null' is not assignable to type 'number | undefined'.size = {: null }; width
関連情報
📄️ オプショナルチェーン
JavaScriptのオプショナルチェーン?.は、オブジェクトのプロパティが存在しない場合でも、エラーを起こさずにプロパティを参照できる安全な方法です。