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

オブジェクト型のオプションプロパティ (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のオプショナルチェーン?.は、オブジェクトのプロパティが存在しない場合でも、エラーを起こさずにプロパティを参照できる安全な方法です。
  • 質問する ─ 読んでも分からなかったこと、TypeScriptで分からないこと、お気軽にGitHubまで🙂
  • 問題を報告する ─ 文章やサンプルコードなどの誤植はお知らせください。