オプショナルプロパティの定義
TypeScript でインタフェースを定義するとき、プロパティ名の末尾に ?
を付けると、そのプロパティをオプショナルプロパティとすることができます(関数のオプショナルパラメータと同様です)。
例えば、次の User
インタフェースの age
プロパティはオプショナルになっているため、User
オブジェクトを生成するときに age
プロパティの値を省略することができます。
インタフェースを定義せずに、変数の定義時に型情報を指定する場合も同様です。
オプショナルなプロパティを定義する代わりに、特定の値(例えば -1
)を、値がないことを示すために使用するという方法もありますが、プロパティ自体格納せずに undefined
としておく方が分かりやすいでしょう。
オプショナルプロパティが指定されたか調べる
オブジェクトが、あるプロパティを保持しているかどうかを調べるには、次のように in
や typeof
を使って確認します。
使用例
次の getUser
関数は、name
プロパティと age
プロパティを持つ User
オブジェクトを返す関数ですが、場合によっては age
プロパティを持たないオブジェクトを返すことを示しています。
関連記事