การใช้ประเภทคลาสใน Generics ใน TypeScript

คุณสามารถใช้คลาสเป็นประเภททั่วไปได้เช่นกัน เพียงแต่ต้องกำหนดประเภทของคลาส โดยใช้ตัวสร้างของมัน ดังนั้น แทนที่จะเป็นพารามิเตอร์ type:T เราจำเป็นต้อง ระบุ type: {new(): T;} มาเขียนฟังก์ชันที่สร้างผู้ใช้ใหม่จากคลาส User กัน:

typescriptfunction getUser <T> (type: { new (): T; }): T {
  return new type();
}

class User {
  constructor() {
    console.log('You create a new user!');
  }
}

let user: User = getUser(User);

ผลลัพธ์ของโค้ดที่ทำงาน:

typescript'You create a new user!'