TSを雰囲気で使っている部分があるので書籍を読んで新しい知見を得ようという試み。 書籍は実践 TypeScript です。
※記載コードは書籍を一部省略して書いたり、別途ググって別のコードを記載しています。
※正確なコードは書籍をご確認ください。
全部書くとただの写経になるので、気になるのだけ。
type User = { name: string age: number | null }
Partial型
Object型のプロパティを全てoptional型に変換し、新しい型を生成する型。
type PartialUser = Partial<User>
// 結果 type PartialUser = { name?: string | undefined age?: number | null | undefined }
Required型
Object型のプロパティから、全てoptionalを取り除き、新しい型を生成する型。
type RequiredUser = Required<User>
Record型
ある型のプロパティを別の型にマッピング。
type UserRecord = Record<number, User>
// 結果 type UserRecord = { number: User }
こんな感じで使うと良さそう。
let users: Record<number, User> = { 0: { name: "John Doe", age: 30 }, 1: { name: "Ibrahima Fall", age: 34 }, 2: { name: "Sara Duckson", age: 90 }, }
Pick型
第1Genericsから第2Genericsの型を抽出して新しいObject型を生成する型。
type UserAge = Pick<User, 'age'>
// 結果 type UserAge = { age: number | null }
Omit型
Pick型の反対。不要なプロパティを指定すると、新しいObjcet型を生成する型。
type WithoutAge = Omit<User, 'age'>
// 結果 type WithoutAge = { name: string }