Kelas Generik di TypeScript
Selain antarmuka generik di TypeScript, kita juga dapat membuat kelas generik.
Mari buat kelas User dengan tipe
generik. Tulis juga properti value
dengan tipe generik dan buat konstruktor
yang sesuai:
typescriptclass User <T> {
value: T;
constructor(userData: T) {
this.value = userData;
}
}
Sekarang buat objek dari kelas ini dan berikan nilai string ke propertinya:
typescriptlet user = new User('john');
console.log(user.value); // 'john'
Namun, jika kita sudah menetapkan nilai string kepada objek saat pemanggilannya, kita tidak akan dapat menimpa nilai tersebut dengan tipe lain:
typescriptlet user = new User('john');
user.value = 35;
Saat mencoba menjalankan kode, kita akan melihat error berikut:
typescriptType 'number' is not assignable to type 'string'.
Tetapi pada saat yang sama, kita dapat menimpa nilai string:
typescriptlet user = new User('john');
user.value = 'alex';
console.log(user.value); // 'alex'
Perhatikan bahwa kita tidak dapat menimpa properti dari objek yang sama dengan tipe yang berbeda, tetapi kita dapat membuat objek lain:
typescriptlet newUser = new User(35);
console.log(newUser.value); // 35