Dev Study
TypeScript コース

13. オプショナルプロパティ ?

プロパティ名の後ろに ? を付けると「あってもなくてもよい」省略可能なプロパティになります。{ name: string; nickname?: string } なら、nickname のないオブジェクトも代入できます。

実務のデータには「設定されていれば使う」という任意項目がつきものです。プロフィールのニックネームや配送のメモ欄など、全員が持つとは限らない値を ? で表現します。

つまずきポイントは、省略可能なプロパティの値は undefined の可能性があることです。そのまま文字列メソッドなどを呼ぶとエラーになるため、使う前に undefined でないことを確認する一手間が必要です。

▶ サンプルコードを実行してみよう(自由に書き換えてOK)

TypeScript
公式ドキュメントで詳しく ↗