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:
typescriptclass 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:
typescriptlet 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:
typescriptlet user = new User('john');
user.value = 35;
Wanneer ons probeer om die kode uit te voer, sal ons die volgende fout sien:
typescriptType 'number' is not assignable to type 'string'.
Maar terselfdertyd kan ons die stringwaarde oorskryf:
typescriptlet 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:
typescriptlet newUser = new User(35);
console.log(newUser.value); // 35