Kelas Generik dalam TypeScript
Selain antara muka generik dalam TypeScript, kelas generik juga boleh dibuat.
Mari kita buat kelas User daripada jenis
generik. Mari kita tulis juga sifat value
jenis generik dan buat pembina yang
sepadan:
typescriptclass User <T> {
value: T;
constructor(userData: T) {
this.value = userData;
}
}
Sekarang mari buat objek kelas ini dan tetapkan nilai rentetan kepadanya dalam sifat:
typescriptlet user = new User('john');
console.log(user.value); // 'john'
Walau bagaimanapun, jika kita telah menetapkan nilai rentetan kepada objek semasa ia dipanggil, kita tidak akan dapat menulis semula nilai ini kepada jenis lain:
typescriptlet user = new User('john');
user.value = 35;
Apabila cuba menjalankan kod, kita akan melihat ralat berikut:
typescriptType 'number' is not assignable to type 'string'.
Tetapi pada masa yang sama, kita boleh menulis semula nilai rentetan:
typescriptlet user = new User('john');
user.value = 'alex';
console.log(user.value); // 'alex'
Perhatikan bahawa kita tidak boleh menulis semula sifat objek yang sama kepada jenis lain, tetapi kita boleh membuat objek lain:
typescriptlet newUser = new User(35);
console.log(newUser.value); // 35