TypeScript-daky umumy klaslar
TypeScript-de umumy interfeyslerden başga-da, umumy klaslar hem etmek bolýar.
Geliň, User klasyny döreteliň.
Şeýle hem value umumy tipindäki hassaýy ýazyň we
degili konstruktory taýýarlaň:
class User <T> {
value: T;
constructor(userData: T) {
this.value = userData;
}
}
Indi bu klasyň objektiňi döreteliň we ona hassasynda setir bahasyny ýazyň:
let user = new User('john');
console.log(user.value); // 'john'
Emma, eger objekti çagyrylanda setir bahasyny eýýäm belleýän bolsak, bu bahany beýleki tipe ýazdyryp bolmaýar:
let user = new User('john');
user.value = 35;
Kody işletmek synanyşygymyzda aşakdaky ýaly ýalňyşlygy göreris:
Type 'number' is not assignable to type 'string'.
Emma şol bir wagtyň özünde setir bahasyny ýazdyryp bileris:
let user = new User('john');
user.value = 'alex';
console.log(user.value); // 'alex'
Üns beriň, bir objektiň hassaýyny şol bir objektiň beýleki tipine ýazdyryp bolmaýar, ýöne beýleki bir objekti ýönekeý ýagdaýda döredip bileris:
let newUser = new User(35);
console.log(newUser.value); // 35