前回は、パーシャル型(Partial Type)を紹介しました。

パーシャル型とは反対に、オプションの項目を、ある時は必須にしたい場合、どうすればいいでしょうか。

tanakaというオブジェクトがあったとします。

type Profile = {
  name: string;
  age?: number;
};

let tanaka: Profile = { name: "田中" };

ageはオプションであるため、ageがなくても問題ありません。

image2

オプションのプロパティを必須にする時に使うのが、リクワイヤド型(Required Type)です。

書き方は、オプションにしたい型を『<>』で閉じ、<>の前に、『Required』と書きます。

let sato: Required<Profile> = { name: "佐藤" };

確認してみると、

image3

『プロパティ 'age' は型 '{ name: string; }' にありませんが、型 'Required<Profile>' では必須です。』と指摘されました。

age を追加すると、

let sato: Required<Profile> = { name: "佐藤", age: 25 };

image4

エラーがなくなりました。

ブログ一覧