0Pricing
TypeScript Academy · บทเรียน

ชนิดข้อมูลแบบแมป

เรียนรู้วิธีแปลงชนิดข้อมูลเดิมเป็นชนิดใหม่โดยใช้ชนิดข้อมูลแบบแมป เพื่อเพิ่มความยืดหยุ่นในการจัดการโครงสร้างข้อมูลแบบไดนามิก

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

บทนำสู่ชนิดแบบแมป

บทนำสู่ชนิดแบบแมป

ชนิดแบบแมปช่วยให้คุณแปลงชนิดที่มีอยู่เป็นชนิดใหม่ได้โดยใช้การดำเนินการกับคุณสมบัติแต่ละรายการในชนิดนั้น

ชนิดแบบแมปมีประสิทธิภาพสำหรับสร้างโครงสร้างชนิดที่ยืดหยุ่นและนำกลับมาใช้ซ้ำได้ใน TypeScript

ชนิดข้อมูลแบบแมป — ภาพประกอบ 1

ชนิดแบบแมปคืออะไร

ชนิดแบบแมปคืออะไร

ชนิดแบบแมปใช้ไวยากรณ์เช่น { [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 ของคุณมีประสิทธิภาพยิ่งขึ้น!

ชนิดข้อมูลแบบแมป — ภาพประกอบ 10

คำถามที่พบบ่อย

บทเรียน “ชนิดข้อมูลแบบแมป” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “ชนิดข้อมูลแบบแมป” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. ชนิด Keyof และชนิด Lookup
  2. ชนิดข้อมูลแบบแมป
  3. ชนิดข้อมูลแบบอินเทอร์เซกชันและยูเนียน
← กลับไปที่ TypeScript Academy