INFO
Generic เป็นคุณสมบัติที่ช่วยให้คุณสามารถเขียนฟังก์ชัน, คลาส, หรืออินเตอร์เฟซที่ทำงานกับประเภทข้อมูลหลายๆ ประเภทได้อย่างยืดหยุ่นโดยไม่ต้องระบุประเภทที่แน่นอนล่วงหน้า การใช้ generics ช่วยให้สามารถสร้างโค้ดที่สามารถทำงานกับหลายประเภทข้อมูล แต่ยังคงรักษาความปลอดภัยของประเภทข้อมูล (type safety) ในขณะเดียวกัน
Functions
ฟังก์ชันที่ใช้ตัวแปรประเภท T รับและส่งคืนค่าของประเภท T
ts
function identity<T>(arg: T): T {
return arg;
}
Interfaces
อินเตอร์เฟซที่ใช้ตัวแปรประเภท T เพื่อกำหนดโครงสร้างของฟังก์ชันที่รับและส่งคืนค่าประเภท T
ts
interface GenericIdentityFn<T> {
(arg: T): T;
}
Classes
คลาสที่ใช้ตัวแปรประเภท T สำหรับคุณสมบัติและเมธอด ทำงานกับประเภทข้อมูลหลายประเภท
ts
class GenericNumber<T> {
zeroValue: T;
add: (x: T, y: T) => T;
}