Mapped Type
Mapped Type ใน TypeScript ช่วยให้คุณสร้างชนิดใหม่จากชนิดที่มีอยู่ด้วยการแปลงพร็อพเพอร์ตีแต่ละรายการโดยใช้ฟังก์ชันแมป การแมปชนิดที่มีอยู่ช่วยให้คุณสร้างชนิดใหม่ที่แทนข้อมูลเดิมในรูปแบบที่แตกต่างออกไป หากต้องการสร้าง mapped type ให้เข้าถึงพร็อพเพอร์ตีของชนิดที่มีอยู่ด้วยตัวดำเนินการ keyof แล้วปรับเปลี่ยนเพื่อสร้างชนิดใหม่
ในตัวอย่างต่อไปนี้:
type MyMappedType<T> = { [P in keyof T]: T[P][];};type MyType = { foo: string; bar: number;};type MyNewType = MyMappedType<MyType>;const x: MyNewType = { foo: ['hello', 'world'], bar: [1, 2, 3],};เรากำหนด MyMappedType ให้แมปพร็อพเพอร์ตีของ T เพื่อสร้างชนิดใหม่ที่แต่ละพร็อพเพอร์ตีเป็นอาร์เรย์ของชนิดเดิม จากนั้นใช้สิ่งนี้สร้าง MyNewType เพื่อแทนข้อมูลเดียวกับ MyType แต่แต่ละพร็อพเพอร์ตีเป็นอาร์เรย์