ชนิดแบบมีเงื่อนไขชนิดกระจาย
ทำความเข้าใจว่าชนิดแบบมีเงื่อนไขกระจายไปยังสมาชิกยูเนียนอย่างไร
ชนิดแบบมีเงื่อนไขชนิดกระจาย เป็นบทเรียน TypeScript Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน TypeScript Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส TypeScript Academy มีบทเรียนทั้งหมด 4 บทเรียน
ยินดีต้อนรับ
การกระจายคืออะไร
type Wrap<T> = T extends any ? { value: T } : never;
type R = Wrap<string | number>;
// = { value: string } | { value: number }เงื่อนไขสำคัญ
type Bare<T> = T extends string ? 'yes' : 'no';
type Wrapped<T> = [T] extends [string] ? 'yes' : 'no';
type B = Bare<'a' | 'b'>; // 'yes' | 'yes' = 'yes'
type W = Wrapped<'a' | 'b'>; // 'no' — treated as a tupleการกรองยูเนียนด้วย never
type StringsOnly<T> = T extends string ? T : never;
type S = StringsOnly<string | number | boolean>; // stringประเภทในตัว Extract
type Extract<T, U> = T extends U ? T : never;
type E = Extract<string | number | boolean, string | number>; // string | numberประเภทในตัว Exclude
type Exclude<T, U> = T extends U ? never : T;
type Ex = Exclude<string | number | boolean, boolean>; // string | numberการกระจายของ ToArray
type ToArray<T> = T extends any ? T[] : never;
type R = ToArray<string | number>; // string[] | number[]กรณีใช้งานเพื่อป้องกันการกระจาย
type IsUnion<T> = [T] extends [T] ? [T] extends [Exclude<T, T>] ? false : true : false;ประเภทแมปที่กระจายตัว
type PickByValue<T, V> = {
[K in keyof T as T[K] extends V ? K : never]: T[K]
};ประเภทแบบมีเงื่อนไขที่กระจายตัวใน ReturnType
type Fn = (() => string) | (() => number);
type R = ReturnType<Fn>; // string | numberการกระจายแบบประเมินทันทีและแบบเลื่อนเวลา
ตรวจสอบความเข้าใจ
สรุป
คำถามที่พบบ่อย
บทเรียน “ชนิดแบบมีเงื่อนไขชนิดกระจาย” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ชนิดแบบมีเงื่อนไขชนิดกระจาย” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส TypeScript Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส TypeScript Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ชนิดแบบมีเงื่อนไขชนิดกระจาย”
ทำความเข้าใจว่าชนิดแบบมีเงื่อนไขกระจายไปยังสมาชิกยูเนียนอย่างไร คุณปฏิบัติ TypeScript Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน TypeScript Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน TypeScript Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “ชนิดแบบมีเงื่อนไขชนิดกระจาย” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน TypeScript Academy นี้ได้ไหม
ได้ บทเรียน TypeScript Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- keyof และชนิดการเข้าถึงแบบดัชนี
- ข้อจำกัดเจเนอริก: การจำกัดพารามิเตอร์ชนิดให้แคบลง
- ชนิดแบบมีเงื่อนไข: T extends U ? X : Y
- ชนิดแบบมีเงื่อนไขชนิดกระจาย