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

ชนิดข้อมูลแบบมีเงื่อนไข

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

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

บทนำสู่ชนิดข้อมูลแบบมีเงื่อนไข

บทนำสู่ชนิดข้อมูลแบบมีเงื่อนไข

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

ชนิดข้อมูลเหล่านี้ใช้ไวยากรณ์ที่คล้ายกับตัวดำเนินการแบบมีเงื่อนไข (ternary) ของ JavaScript

ชนิดข้อมูลแบบมีเงื่อนไข — ภาพประกอบ 1

ชนิดข้อมูลแบบมีเงื่อนไขคืออะไร

ชนิดข้อมูลแบบมีเงื่อนไขคืออะไร

ชนิดข้อมูลแบบมีเงื่อนไขช่วยให้คุณกำหนดชนิดข้อมูลที่ขึ้นอยู่กับชนิดข้อมูลอื่น ไวยากรณ์พื้นฐานคือ:

T extends U ? X : Y

ความหมายคือ หาก T ขยายมาจาก U ชนิดข้อมูลนั้นจะเป็น X มิฉะนั้นจะเป็น Y

ตัวอย่างพื้นฐานของชนิดข้อมูลแบบมีเงื่อนไข

ตัวอย่างพื้นฐานของชนิดข้อมูลแบบมีเงื่อนไข

ตัวอย่างง่าย ๆ มีดังนี้:

type IsString<T> = T extends string ? 'Yes' : 'No';

// Test cases
type A = IsString<string>; // 'Yes'
type B = IsString<number>; // 'No'

การใช้ชนิดข้อมูลแบบมีเงื่อนไขกับการโอเวอร์โหลดฟังก์ชัน

การใช้ชนิดข้อมูลแบบมีเงื่อนไขกับการโอเวอร์โหลดฟังก์ชัน

ชนิดข้อมูลแบบมีเงื่อนไขช่วยทำให้การโอเวอร์โหลดฟังก์ชันง่ายขึ้น โดยกำหนดชนิดข้อมูลผลลัพธ์แบบไดนามิก:

type ReturnType<T> = T extends (...args: any[]) => infer R ? R : never;

function getData(): string {
  return 'Hello';
}

type DataType = ReturnType<typeof getData>; // string

ชนิดข้อมูลแบบมีเงื่อนไขชนิดกระจาย

ชนิดข้อมูลแบบมีเงื่อนไขชนิดกระจาย

เมื่อใช้ชนิดข้อมูลแบบมีเงื่อนไขกับชนิดข้อมูลยูเนียน ชนิดข้อมูลเหล่านี้จะถูกกระจายไปยังสมาชิกแต่ละตัวของยูเนียน:

type ToArray<T> = T extends any ? T[] : never;

type A = ToArray<string | number>;
// A = string[] | number[]

การรวมชนิดข้อมูลแบบมีเงื่อนไขเข้ากับชนิดข้อมูลแบบแมป

การรวมชนิดข้อมูลแบบมีเงื่อนไขเข้ากับชนิดข้อมูลแบบแมป

คุณสามารถรวมชนิดข้อมูลแบบมีเงื่อนไขเข้ากับชนิดข้อมูลแบบแมป เพื่อสร้างการแปลงชนิดข้อมูลที่ทรงพลังได้:

type User = {
  id: number;
  name: string;
  isAdmin?: boolean;
};

type MakeRequired<T> = {
  [K in keyof T]-?: T[K] extends undefined ? never : T[K];
};

type RequiredUser = MakeRequired<User>;
// { id: number; name: string; isAdmin: never; }

กรณีการใช้งานทั่วไปของชนิดข้อมูลแบบมีเงื่อนไข

กรณีการใช้งานทั่วไปของชนิดข้อมูลแบบมีเงื่อนไข

ชนิดข้อมูลแบบมีเงื่อนไขมักใช้สำหรับ:

  • อนุมานชนิดข้อมูลผลลัพธ์หรือพารามิเตอร์
  • แปลงชนิดข้อมูลยูเนียนและอินเตอร์เซกชัน
  • สร้างชนิดข้อมูลอรรถประโยชน์ เช่น Exclude, Extract และ NonNullable

งานฝึกปฏิบัติ

งานฝึกปฏิบัติ

สร้างชนิดข้อมูลแบบมีเงื่อนไขที่ตรวจสอบว่าชนิดข้อมูลเป็นอาร์เรย์หรือไม่ หากใช่ ให้คืนค่าชนิดข้อมูลของสมาชิกในอาร์เรย์ มิฉะนั้นให้คืนค่าชนิดข้อมูลนั้นเอง

ยินดีด้วย!

ยินดีด้วย!

คุณได้เรียนรู้วิธีใช้ชนิดข้อมูลแบบมีเงื่อนไขเพื่อสร้างคำจำกัดความชนิดข้อมูลแบบไดนามิกและนำกลับมาใช้ใหม่ได้ใน TypeScript แล้ว ฝึกฝนแนวคิดเหล่านี้เพื่อเขียนโค้ด TypeScript ที่ทรงพลังและยืดหยุ่นยิ่งขึ้น

ชนิดข้อมูลแบบมีเงื่อนไข — ภาพประกอบ 10

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

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

ใช่ — ข้อความเต็มของ “ชนิดข้อมูลแบบมีเงื่อนไข” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส TypeScript Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส TypeScript Academy มีบทเรียนทั้งหมด 3 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “ชนิดข้อมูลแบบมีเงื่อนไข”

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

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน TypeScript Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน TypeScript Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 3 บทเรียน

บทเรียน “ชนิดข้อมูลแบบมีเงื่อนไข” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน TypeScript Academy นี้ได้ไหม

ได้ บทเรียน TypeScript Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

  1. การจำกัดชนิดข้อมูลขั้นสูง
  2. ความสามารถขั้นสูงของคลาส
  3. ชนิดข้อมูลแบบมีเงื่อนไข
← กลับไปที่ TypeScript Academy