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

พารามิเตอร์ชนิดเริ่มต้น

ระบุชนิดสำรองเมื่อไม่มีการส่งอาร์กิวเมนต์

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

ยินดีต้อนรับ

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

ไวยากรณ์ชนิดเริ่มต้น

เพิ่ม `= DefaultType` หลังชื่อพารามิเตอร์ชนิดข้อมูลเพื่อกำหนดค่าเริ่มต้น
interface Container<T = string> {
  value: T;
}
const c: Container = { value: 'hello' }; // T defaults to string
const n: Container<number> = { value: 42 };

ค่าเริ่มต้นในฟังก์ชันชนิดทั่วไป

พารามิเตอร์ชนิดข้อมูลของฟังก์ชันก็มีค่าเริ่มต้นได้เช่นกัน แม้จะพบได้น้อยกว่า เพราะโดยปกติ TypeScript จะอนุมานชนิดข้อมูลให้
function createList<T = string>(): T[] { return []; }
const list = createList(); // T is string by default

ค่าเริ่มต้นร่วมกับข้อจำกัด

พารามิเตอร์ชนิดข้อมูลสามารถมีทั้งข้อจำกัดและค่าเริ่มต้นได้ โดยค่าเริ่มต้นต้องเป็นไปตามข้อจำกัด
interface Event<T extends object = Record<string, unknown>> {
  type: string;
  payload: T;
}

ค่าเริ่มต้นในคอมโพเนนต์แบบ React

พารามิเตอร์ชนิดข้อมูลเริ่มต้นพบได้บ่อยในชนิดทั่วไปของไลบรารีส่วนติดต่อผู้ใช้สำหรับคุณสมบัติของคอมโพเนนต์
interface SelectProps<T = string> {
  options: T[];
  value: T;
  onChange: (val: T) => void;
}

ค่าเริ่มต้นหลายรายการ

พารามิเตอร์ชนิดข้อมูลหลายตัวสามารถมีค่าเริ่มต้นของตนเองได้
type Pair<A = string, B = number> = { first: A; second: B };
const p: Pair = { first: 'hello', second: 42 }; // A=string, B=number

พารามิเตอร์ชนิดข้อมูลท้ายรายการก็ต้องมีค่าเริ่มต้น

หากต้องการใช้ค่าเริ่มต้นกับพารามิเตอร์ชนิดข้อมูลที่อยู่ถัดไป พารามิเตอร์ก่อนหน้าทั้งหมดที่ไม่มีค่าเริ่มต้นจะต้องระบุให้ครบ
type Map<K = string, V = unknown> = Record<K extends string ? K : string, V>;
const m: Map = {}; // K=string, V=unknown by default

เมื่อ TypeScript ไม่ใช้ค่าเริ่มต้น

หาก TypeScript สามารถอนุมานอาร์กิวเมนต์ชนิดข้อมูลจากบริบทได้ ระบบจะใช้ชนิดที่อนุมานได้ แม้จะมีการกำหนดค่าเริ่มต้นไว้ก็ตาม
function wrap<T = string>(val: T): T { return val; }
const n = wrap(42); // T is number, not string (inferred)

การแทนที่อย่างชัดเจน

การระบุอาร์กิวเมนต์ชนิดข้อมูลอย่างชัดเจนจะแทนที่ค่าเริ่มต้นเสมอ
interface Box<T = string> { item: T; }
const numBox: Box<number> = { item: 100 }; // T explicitly number

ค่าเริ่มต้นในคลาสชนิดทั่วไป

คลาสชนิดทั่วไปก็สามารถมีพารามิเตอร์ชนิดข้อมูลเริ่มต้นได้เช่นกัน
class Stack<T = unknown> {
  private items: T[] = [];
  push(item: T) { this.items.push(item); }
  pop(): T | undefined { return this.items.pop(); }
}

ค่าเริ่มต้นช่วยให้ไลบรารีชนิดทั่วไปใช้งานง่ายขึ้น

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

ตรวจสอบอย่างรวดเร็ว

เมื่อกำหนด `interface Box` ชนิดของ `.value` ใน `const b: Box = { value: 99 }` คืออะไร

สรุปทบทวน

พารามิเตอร์ชนิดข้อมูลเริ่มต้น (T = DefaultType) จะกำหนดชนิดสำรองเมื่อผู้เรียกไม่ได้ระบุชนิดข้อมูล โดยมีประโยชน์มากที่สุดในอินเทอร์เฟซ นิยามคลาส และ API ของไลบรารี เพราะช่วยลดโค้ดประกอบที่ผู้เรียกต้องเขียน

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

บทเรียน “พารามิเตอร์ชนิดเริ่มต้น” ฟรีหรือไม่

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

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

  1. ฟังก์ชันเจเนอริก: พารามิเตอร์ชนิด
  2. อินเทอร์เฟซและนามแฝงชนิดแบบเจเนอริก
  3. ข้อจำกัดเจเนอริกด้วย extends
  4. พารามิเตอร์ชนิดเริ่มต้น
← กลับไปที่ TypeScript Academy