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