LoginSignup
4
0

めちゃくちゃ基本的なことですが…知らないとある時に「え?」となります。

TypeScriptを書き始めて時間が経っていない人に届くと嬉しいな…
という記事です!

TypeScriptでオブジェクトのプロパティを型にする時に何故か入ってくるundefinedはなに?

結論を端的に言うと「予期せぬエラーを防ぐため」です!

サバイバルTypeScriptは一読していますが、細かいことまで覚えられてなかったことが発覚したのはいうまでもありません…

TypeScriptは、オブジェクトのプロパティに安全にアクセスでき、存在しない場合にエラーを防ぐことを目的にundefinedを返すように設計されています!

実際のコードを見ながら説明します。

type MyObject = {
  name?: string
  age?: number
}

type Props = {
  firstName: MyObject['name'];
};

上記のfirstNameの型はstringundefinedを受け付ける型になります。

MyObjectのnameが任意ではなく、必須のプロパティである場合のfirstNameの型はstringのみを許容する型になります。

まとめ

TypeScriptを業務で使い始める前にサバイバルTypeScriptは一通り確認してますが、漏れているところその時には理解できてなかった部分が多いと感じるこの頃です…。

これからTypeScriptを始める人や始めたばかりの人にとって「そうだったんだ!」という気づきを与えられる記事を投稿していければと思います!

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0