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

オブジェクト型のオプションプロパティ (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'.

関連情報#