メインコンテンツまでスキップ

オブジェクトの型のオプションプロパティ (optional property)

TypeScriptで、オブジェクトプロパティのオプショナルを型付けするには、プロパティ名の後ろに?を書きます。

ts
let size: { width?: number };
ts
let size: { width?: number };

オプションプロパティを持ったオブジェクトの型には、そのオプションプロパティを持たないオブジェクトを代入できます。

ts
size = {}; // OK
ts
size = {}; // OK

また、オプションプロパティの値がundefinedのオブジェクトも代入できます。

ts
size = { width: undefined }; // OK
ts
size = { width: undefined }; // OK

しかし、オプションプロパティの値がnullの場合は代入できません。

ts
size = { width: null };
Type 'null' is not assignable to type 'number | undefined'.2322Type 'null' is not assignable to type 'number | undefined'.
ts
size = { width: null };
Type 'null' is not assignable to type 'number | undefined'.2322Type 'null' is not assignable to type 'number | undefined'.

関連情報

📄️ オプショナルチェーン

JavaScriptのオプショナルチェーン?.は、オブジェクトの参照がnullやundefinedの場合でも、エラーを起こさずにプロパティを参照できる安全な方法です。