Algemene klasse in TypeScript
Benewens algemene koppelvlakke kan jy ook algemene klasse in TypeScript maak.
Kom ons skep 'n klas User van 'n algemene
tik. Laat ons ook die eienskap value van
'n algemene tik skryf en 'n toepaslike
konstrukteur maak:
class User <T> {
value: T;
constructor(userData: T) {
this.value = userData;
}
}
Laat ons nou 'n voorwerp van hierdie klas maak en 'n stringwaarde aan sy eienskap toeskryf:
let user = new User('john');
console.log(user.value); // 'john'
As ons egter reeds 'n stringwaarde aan die voorwerp toegewys het tydens die aanroep, kan ons nie hierdie waarde na 'n ander tik oorskryf nie:
let user = new User('john');
user.value = 35;
Wanneer ons probeer om die kode uit te voer, sal ons die volgende fout sien:
Type 'number' is not assignable to type 'string'.
Maar terselfdertyd kan ons die stringwaarde oorskryf:
let user = new User('john');
user.value = 'alex';
console.log(user.value); // 'alex'
Let op dat ons nie die eienskap van dieselfde voorwerp na 'n ander tik kan oorskryf nie, maar ons kan net 'n ander voorwerp skep:
let newUser = new User(35);
console.log(newUser.value); // 35