Генерички класови во TypeScript
Покрај генеричките интерфејси во TypeScript може да се прават и генерички класови.
Ајде да создадеме класа User од генерички
тип. Да напишеме и својство value
од генерички тип и да направиме соодветен
конструктор:
class User <T> {
value: T;
constructor(userData: T) {
this.value = userData;
}
}
Сега да направиме објект од оваа класа и да му пропишеме строчна вредност во својството:
let user = new User('john');
console.log(user.value); // 'john'
Сепак, ако веќе му зададовме на објектот при неговото повикување строчна вредност, нема да успееме да ја презапишеме оваа вредност во друг тип:
let user = new User('john');
user.value = 35;
При обид да се стартува кодот ќе ја видиме следната грешка:
Type 'number' is not assignable to type 'string'.
Но во исто време можеме да ја презапишеме строчната вредност:
let user = new User('john');
user.value = 'alex';
console.log(user.value); // 'alex'
Забележете дека не можеме да го презапишеме својството на истиот објект во друг тип, но можеме да создадеме просто друг објект:
let newUser = new User(35);
console.log(newUser.value); // 35