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:
class User <T> {
value: T;
constructor(userData: T) {
this.value = userData;
}
}
Sekarang buat objek dari kelas ini dan berikan nilai string ke propertinya:
let 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:
let user = new User('john');
user.value = 35;
Saat mencoba menjalankan kode, kita akan melihat error berikut:
Type 'number' is not assignable to type 'string'.
Tetapi pada saat yang sama, kita dapat menimpa nilai string:
let 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:
let newUser = new User(35);
console.log(newUser.value); // 35