めちゃくちゃ基本的なことですが…知らないとある時に「え?」となります。
TypeScriptを書き始めて時間が経っていない人に届くと嬉しいな…
という記事です!
TypeScriptでオブジェクトのプロパティを型にする時に何故か入ってくるundefined
はなに?
結論を端的に言うと「予期せぬエラーを防ぐため」です!
サバイバルTypeScriptは一読していますが、細かいことまで覚えられてなかったことが発覚したのはいうまでもありません…
TypeScriptは、オブジェクトのプロパティに安全にアクセスでき、存在しない場合にエラーを防ぐことを目的にundefined
を返すように設計されています!
実際のコードを見ながら説明します。
type MyObject = {
name?: string
age?: number
}
type Props = {
firstName: MyObject['name'];
};
上記のfirstName
の型はstring
とundefined
を受け付ける型になります。
MyObject
のnameが任意ではなく、必須のプロパティである場合のfirstName
の型はstring
のみを許容する型になります。
まとめ
TypeScriptを業務で使い始める前にサバイバルTypeScriptは一通り確認してますが、漏れているところその時には理解できてなかった部分が多いと感じるこの頃です…。
これからTypeScriptを始める人や始めたばかりの人にとって「そうだったんだ!」という気づきを与えられる記事を投稿していければと思います!