| รูปร่างออบเจกต์ |
|---|
| T ที่ทุก property เป็น optional | type Update = Partial<User> |
| T ที่ทุก property เป็น required | type Strict = Required<Opts> |
| T ที่ทุก property เป็น readonly | type Frozen = Readonly<User> |
| T ที่เหลือเฉพาะ key ที่อยู่ใน K | type Preview = Pick<User, "id" | "name"> |
| T ที่เอา key ใน K ออก | type SafeUser = Omit<User, "password"> |
| ออบเจกต์ที่มี key เป็น K และ value เป็น V | type Scores = Record<string, number> |
| การกรองยูเนียน |
|---|
| ยูเนียน U ที่ตัดสมาชิกที่ assign ให้ X ได้ออก | type NoNull = Exclude<T, null> |
| สมาชิกของ U ที่ assign ให้ X ได้ | type OnlyStr = Extract<T, string> |
| T ที่เอา null และ undefined ออก | type Def = NonNullable<T> |
| ประเภทของฟังก์ชัน |
|---|
| ทูเพิลของประเภทพารามิเตอร์ของฟังก์ชัน F | type P = Parameters<typeof fn> |
| ประเภทที่ฟังก์ชัน F คืนค่า | type R = ReturnType<typeof fn> |
| ทูเพิลของประเภทพารามิเตอร์ของคอนสตรักเตอร์ F | type C = ConstructorParameters<typeof Date> |
| ประเภทอินสแตนซ์ที่คอนสตรักเตอร์ F สร้างขึ้น | type D = InstanceType<typeof Date> |
| ประเภทที่ Promise resolve ให้แบบเรียกซ้ำ | type Data = Awaited<Promise<User>> |
| การแปลงสตริงลิเทอรัล |
|---|
| สตริงลิเทอรัล S แบบตัวพิมพ์ใหญ่ | type A = Uppercase<"abc"> // "ABC" |
| สตริงลิเทอรัล S แบบตัวพิมพ์เล็ก | type B = Lowercase<"ABC"> // "abc" |
| S ที่อักขระตัวแรกเป็นตัวพิมพ์ใหญ่ | type C = Capitalize<"abc"> // "Abc" |
| S ที่อักขระตัวแรกเป็นตัวพิมพ์เล็ก | type D = Uncapitalize<"Abc"> // "aBc" |
| คีย์เวิร์ดที่เกี่ยวข้อง |
|---|
| ยูเนียนของ property key ของประเภทออบเจกต์ T | type K = keyof User |
| ประเภทของค่า โดยไม่ต้องเขียนซ้ำอีก | type Config = typeof defaults |
| จับประเภทไว้ในเงื่อนไขเพื่อใช้ซ้ำ | type El<T> = T extends Array<infer I> ? I : never |
| เลือกประเภท X หรือ Y ตามว่า T assign ให้ U ได้หรือไม่ | type IsStr<T> = T extends string ? true : false |