Madarasa ya Jumla katika TypeScript
Licha ya interfaces za jumla katika TypeScript unaweza pia kutengeneza madarasa ya jumla.
Wacha tuunde darasa User la aina ya jumla.
Tuandae mali value ya aina ya jumla na tufanye
mkabala unaofaa:
class User <T> {
value: T;
constructor(userData: T) {
this.value = userData;
}
}
Sasa tufanye kitu cha darasa hili na tuandikie thamani ya mfumo wa herufi kwenye mali yake:
let user = new User('john');
console.log(user.value); // 'john'
Hata hivyo, ikiwa tayari tumeweka kitu thamani ya herufi wakati wa kiitajo chake, haturuhusiwi kubadilisha thamani hiyo kuwa aina nyingine:
let user = new User('john');
user.value = 35;
Wakati wa kujaribu kuendesha msimbo tutaona kosa lifuatalo:
Type 'number' is not assignable to type 'string'.
Lakini wakati huo huo tunaweza kubadilisha thamani ya herufi:
let user = new User('john');
user.value = 'alex';
console.log(user.value); // 'alex'
Kumbuka kuwa hatuwezi kubadilisha mali ya kitu kile kile kuwa aina nyingine, lakini tunaweza tu kuunda kitu kingine:
let newUser = new User(35);
console.log(newUser.value); // 35