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:
class User <T> {
value: T;
constructor(userData: T) {
this.value = userData;
}
}
Sekarang mari buat objek kelas ini dan tetapkan nilai rentetan kepadanya dalam sifat:
let 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:
let user = new User('john');
user.value = 35;
Apabila cuba menjalankan kod, kita akan melihat ralat berikut:
Type 'number' is not assignable to type 'string'.
Tetapi pada masa yang sama, kita boleh menulis semula nilai rentetan:
let 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:
let newUser = new User(35);
console.log(newUser.value); // 35