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

เจเนอริกส์คืออะไร
เจเนอริกส์คืออะไร
เจเนอริกส์ช่วยให้คุณเขียนโค้ดที่นำกลับมาใช้ใหม่ได้และทำงานกับชนิดข้อมูลใดก็ได้ โดยทำหน้าที่เป็นตัวแทนของชนิดข้อมูลที่คุณสามารถระบุได้เมื่อนำไปใช้
ตัวอย่าง: ฟังก์ชันแบบเจเนอริก:
งาน: เขียนฟังก์ชันแบบเจเนอริกที่รับอาร์กิวเมนต์และส่งคืนค่าเดิมโดยไม่เปลี่ยนแปลง
function identity<T>(value: T): T {
return value;
}
console.log(identity<string>("Hello"));
// Output: Hello
console.log(identity<number>(42));
// Output: 42
เหตุใดจึงควรใช้เจเนอริกส์
เหตุใดจึงควรใช้เจเนอริกส์
เจเนอริกส์ช่วยให้คุณ:
- เขียนโค้ดที่นำกลับมาใช้ใหม่ได้: ฟังก์ชันและคลาสสามารถทำงานกับชนิดข้อมูลต่าง ๆ ได้
- มั่นใจในความปลอดภัยของชนิดข้อมูล: คุณสามารถบังคับใช้ชนิดข้อมูลเฉพาะได้โดยไม่สูญเสียความยืดหยุ่น
- ลดความซ้ำซ้อน: หลีกเลี่ยงการเขียนฟังก์ชันหรือคลาสเดียวกันแยกกันหลายเวอร์ชันสำหรับชนิดข้อมูลต่าง ๆ
เคล็ดลับ: ใช้เจเนอริกส์เพื่อเขียนโค้ดที่ยืดหยุ่นและดูแลรักษาได้ง่ายขึ้น
ฟังก์ชันแบบเจเนอริก
ฟังก์ชันแบบเจเนอริก
คุณสามารถใช้เจเนอริกส์เพื่อสร้างฟังก์ชันที่ยืดหยุ่นได้ ตัวอย่าง:
งาน: เขียนฟังก์ชันแบบเจเนอริกที่รวมออบเจ็กต์สองรายการและส่งคืนผลลัพธ์
function merge<T, U>(obj1: T, obj2: U): T & U {
return { ...obj1, ...obj2 };
}
let merged = merge({ name: "Alice" }, { age: 25 });
console.log(merged);
// Output: { name: "Alice", age: 25 }
คลาสแบบเจเนอริก
คลาสแบบเจเนอริก
สามารถใช้เจเนอริกส์ในคลาสเพื่อทำให้คลาสนำกลับมาใช้ใหม่กับชนิดข้อมูลต่าง ๆ ได้ ตัวอย่าง:
class Box<T> {
private contents: T;
constructor(contents: T) {
this.contents = contents;
}
getContents(): T {
return this.contents;
}
}
let stringBox = new Box<string>("Hello");
console.log(stringBox.getContents());
// Output: Hello
let numberBox = new Box<number>(42);
console.log(numberBox.getContents());
// Output: 42
อินเทอร์เฟซแบบเจเนอริก
อินเทอร์เฟซแบบเจเนอริก
อินเทอร์เฟซยังสามารถใช้เจเนอริกส์เพื่อบังคับใช้โครงสร้างกับชนิดข้อมูลต่าง ๆ ได้ ตัวอย่าง:
งาน: กำหนดอินเทอร์เฟซแบบเจเนอริก และสร้างออบเจ็กต์ที่นำอินเทอร์เฟซนั้นไปใช้
interface Pair<T, U> {
first: T;
second: U;
}
let coordinates: Pair<number, number> = { first: 10, second: 20 };
console.log(coordinates);
// Output: { first: 10, second: 20 }
ข้อจำกัดของเจเนอริกส์
ข้อจำกัดของเจเนอริกส์
คุณสามารถเพิ่มข้อจำกัดให้กับเจเนอริกส์ เพื่อให้มั่นใจว่าเจเนอริกส์จะทำงานได้เฉพาะกับชนิดข้อมูลบางประเภทเท่านั้น ตัวอย่าง:
function printLength<T extends { length: number }>(item: T): void {
console.log(`Length: ${item.length}`);
}
printLength("Hello");
// Output: Length: 5
printLength([1, 2, 3]);
// Output: Length: 3
// printLength(42);
// Error: Argument of type 'number' is not assignable to parameter of type '{ length: number }'.
ค่าเริ่มต้นของเจเนอริกส์
ค่าเริ่มต้นของเจเนอริกส์
คุณสามารถระบุชนิดข้อมูลเริ่มต้นสำหรับเจเนอริกส์ได้ หากไม่มีการระบุชนิดข้อมูล ตัวอย่าง:
งาน: สร้างฟังก์ชันแบบเจเนอริกที่มีชนิดข้อมูลเริ่มต้น และทดสอบฟังก์ชันนั้นกับชนิดข้อมูลต่าง ๆ
function wrap<T = string>(value: T): T[] {
return [value];
}
console.log(wrap("Hello")); // Output: ["Hello"]
console.log(wrap(42)); // Output: [42]
ยอดเยี่ยมมาก!
ยอดเยี่ยมมาก!
ขอแสดงความยินดี! คุณได้เรียนรู้วิธีใช้เจเนอริกส์ใน TypeScript เพื่อสร้างฟังก์ชัน คลาส และอินเทอร์เฟซที่นำกลับมาใช้ใหม่ได้และปลอดภัยด้านชนิดข้อมูลแล้ว เจเนอริกส์เป็นเครื่องมืออันทรงพลังสำหรับเขียนโค้ดที่ยืดหยุ่นและขยายขนาดได้ ในบทเรียนถัดไป เราจะสำรวจชนิดข้อมูลขั้นสูง เช่น ชนิดข้อมูลแบบแมปและแบบมีเงื่อนไข มาเขียนโค้ดกันต่อ!

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