← TypeScript コース
13. オプショナルプロパティ ?
プロパティ名の後ろに ? を付けると「あってもなくてもよい」省略可能なプロパティになります。{ name: string; nickname?: string } なら、nickname のないオブジェクトも代入できます。
実務のデータには「設定されていれば使う」という任意項目がつきものです。プロフィールのニックネームや配送のメモ欄など、全員が持つとは限らない値を ? で表現します。
つまずきポイントは、省略可能なプロパティの値は undefined の可能性があることです。そのまま文字列メソッドなどを呼ぶとエラーになるため、使う前に undefined でないことを確認する一手間が必要です。
▶ サンプルコードを実行してみよう(自由に書き換えてOK)
TypeScript