TypeScript'te Generics'te Sınıf Tiplerinin Kullanımı

Generic tip olarak sınıfları da kullanabiliriz. Ancak bunun için sınıfın yapıcı metodu (constructor) ile tipinin belirtilmesi gerekir. Dolayısıyla type:T parametresi yerine type: {new(): T;} şeklinde belirtmeliyiz. Hadi, bir User sınıfından yeni bir kullanıcı oluşturacak bir fonksiyon yapalım:

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

class User {
  constructor() {
    console.log('Yeni bir kullanıcı oluşturdunuz!');
  }
}

let user: User = getUser(User);

Kodun çalıştırılma sonucu:

typescript'Yeni bir kullanıcı oluşturdunuz!'