TypeScript හි සාමාන්යීකෘත් වර්ග
TypeScript හි සාමාන්යීකෘත් අතුරුමුහුණතුන්ට අමතරව සාමාන්යීකෘත් වර්ග ද සෑදිය හැකිය.
අපි <User<> නම් සාමාන්යීකෘත් වර්ගයක් සාදමු.
<value<> යන සාමාන්යීකෘත් වර්ගයේ ගුණාංගයක් ද ලියා
අදාළ ඉදිකිරීම්කරුවෙකු (constructor) ද සාදමු:
class User <T> {
value: T;
constructor(userData: T) {
this.value = userData;
}
}
දැන් අපි මෙම වර්ගයේ වස්තුවක් සාදා එහි ගුණාංගයට අනුලකුණු අගයක් (string value) ලියමු:
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