ชนิดข้อมูลแบบแมป
เรียนรู้วิธีแปลงชนิดข้อมูลเดิมเป็นชนิดใหม่โดยใช้ชนิดข้อมูลแบบแมป เพื่อเพิ่มความยืดหยุ่นในการจัดการโครงสร้างข้อมูลแบบไดนามิก
ชนิดข้อมูลแบบแมป เป็นบทเรียน TypeScript Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 3 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน TypeScript Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส TypeScript Academy มีบทเรียนทั้งหมด 3 บทเรียน
บทนำสู่ชนิดแบบแมป
บทนำสู่ชนิดแบบแมป
ชนิดแบบแมปช่วยให้คุณแปลงชนิดที่มีอยู่เป็นชนิดใหม่ได้โดยใช้การดำเนินการกับคุณสมบัติแต่ละรายการในชนิดนั้น
ชนิดแบบแมปมีประสิทธิภาพสำหรับสร้างโครงสร้างชนิดที่ยืดหยุ่นและนำกลับมาใช้ซ้ำได้ใน TypeScript

ชนิดแบบแมปคืออะไร
ชนิดแบบแมปคืออะไร
ชนิดแบบแมปใช้ไวยากรณ์เช่น { [P in keyof T]: T[P] } เพื่อวนซ้ำผ่านคุณสมบัติของชนิด T
ตัวอย่างพื้นฐานของชนิดแบบแมป
ตัวอย่างพื้นฐานของชนิดแบบแมป
ตัวอย่างง่าย ๆ ต่อไปนี้แสดงวิธีใช้ชนิดแบบแมปเพื่อสร้างชนิดเวอร์ชันอ่านได้อย่างเดียว:
type User = {
name: string;
age: number;
};
type ReadonlyUser = {
readonly [P in keyof User]: User[P];
};การใช้ชนิดแบบแมปในตัว
การใช้ชนิดแบบแมปในตัว
TypeScript มีชนิดแบบแมปในตัวหลายชนิด เช่น:
Readonly<T>: ทำให้คุณสมบัติทั้งหมดของTเป็นแบบอ่านได้อย่างเดียวPartial<T>: ทำให้คุณสมบัติทั้งหมดของTเป็นตัวเลือกRequired<T>: ทำให้ต้องระบุคุณสมบัติทั้งหมดของT
type User = {
name: string;
age: number;
};
// Example of Partial
const user: Partial<User> = {
name: 'John',
};การแมปชนิดยูเนียน
การแมปชนิดยูเนียน
ชนิดแบบแมปยังใช้ร่วมกับชนิดยูเนียนเพื่อสร้างชนิดใหม่ที่รวมกันได้:
type Status = 'active' | 'inactive';
type StatusFlags = {
[K in Status]: boolean;
};
const flags: StatusFlags = {
active: true,
inactive: false,
};ชนิดแบบแมปมีเงื่อนไข
ชนิดแบบแมปมีเงื่อนไข
คุณสามารถใช้ชนิดแบบมีเงื่อนไขร่วมกับชนิดแบบแมปเพื่อสร้างการแปลงชนิดที่ซับซ้อนยิ่งขึ้น
type User = {
name: string;
age?: number;
};
type NonOptional<T> = {
[K in keyof T]-?: T[K];
};
type RequiredUser = NonOptional<User>;ตัวอย่างขั้นสูง: ไม่รวมคุณสมบัติ
ตัวอย่างขั้นสูง: ไม่รวมคุณสมบัติ
ต่อไปนี้เป็นวิธีสร้างชนิดแบบแมปเพื่อไม่รวมคุณสมบัติบางรายการ:
type User = {
id: number;
name: string;
password: string;
};
type PublicUser = {
[K in keyof User as Exclude<K, 'password'>]: User[K];
};แบบฝึกหัด
แบบฝึกหัด
สร้างชนิดแบบแมปที่เพิ่มตัวปรับแก้ readonly ให้กับคุณสมบัติทั้งหมดของชนิด Product ทดสอบโดยประกาศตัวแปรที่มีชนิดใหม่
ทบทวนประเภทแบบแมป
ขอแสดงความยินดี!
คุณได้เรียนรู้วิธีใช้ประเภทแบบแมปเพื่อแปลงประเภทที่มีอยู่ให้เป็นประเภทใหม่แบบไดนามิกแล้ว โปรดฝึกใช้เทคนิคเหล่านี้เพื่อทำให้โค้ด TypeScript ของคุณมีประสิทธิภาพยิ่งขึ้น!

คำถามที่พบบ่อย
บทเรียน “ชนิดข้อมูลแบบแมป” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ชนิดข้อมูลแบบแมป” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส TypeScript Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส TypeScript Academy มีบทเรียนทั้งหมด 3 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ชนิดข้อมูลแบบแมป”
เรียนรู้วิธีแปลงชนิดข้อมูลเดิมเป็นชนิดใหม่โดยใช้ชนิดข้อมูลแบบแมป เพื่อเพิ่มความยืดหยุ่นในการจัดการโครงสร้างข้อมูลแบบไดนามิก คุณปฏิบัติ TypeScript Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน TypeScript Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน TypeScript Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 3 บทเรียน
บทเรียน “ชนิดข้อมูลแบบแมป” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน TypeScript Academy นี้ได้ไหม
ได้ บทเรียน TypeScript Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ชนิด Keyof และชนิด Lookup
- ชนิดข้อมูลแบบแมป
- ชนิดข้อมูลแบบอินเทอร์เซกชันและยูเนียน