TypeScript
mixins
खोज…
वाक्य - विन्यास
- क्लास बीटलग्यु क्लेम्बस, बुलेटप्रूफ {} लागू करता है
- applyMixins (बीटलग्यू, [क्लाइम्ब, बुलेटप्रूफ]);
पैरामीटर
पैरामीटर | विवरण |
---|---|
derivedCtor | वह वर्ग जिसे आप रचना वर्ग के रूप में उपयोग करना चाहते हैं |
baseCtors | रचना वर्ग में जोड़े जाने वाले वर्गों की एक सरणी |
टिप्पणियों
मिश्रणों को ध्यान में रखने के लिए तीन नियम हैं:
- आप का उपयोग
implements
कीवर्ड, नहींextends
कीवर्ड जब आप अपने रचना वर्ग बारे में - संकलक को शांत रखने के लिए आपको एक मिलान हस्ताक्षर की आवश्यकता है (लेकिन इसे किसी भी वास्तविक कार्यान्वयन की आवश्यकता नहीं है - यह मिश्रण से प्राप्त होगा)।
- आपको सही तर्कों के साथ
applyMixins
को कॉल करने की आवश्यकता है।
मिक्सिन्स का उदाहरण
मिश्रण बनाने के लिए, बस हल्के वर्गों की घोषणा करें जिन्हें "व्यवहार" के रूप में इस्तेमाल किया जा सकता है।
class Flies {
fly() {
alert('Is it a bird? Is it a plane?');
}
}
class Climbs {
climb() {
alert('My spider-sense is tingling.');
}
}
class Bulletproof {
deflect() {
alert('My wings are a shield of steel.');
}
}
आप इन व्यवहारों को एक रचना वर्ग में लागू कर सकते हैं:
class BeetleGuy implements Climbs, Bulletproof {
climb: () => void;
deflect: () => void;
}
applyMixins (BeetleGuy, [Climbs, Bulletproof]);
applyMixins
कार्य को करने के लिए applyMixins
फ़ंक्शन की आवश्यकता है।
function applyMixins(derivedCtor: any, baseCtors: any[]) {
baseCtors.forEach(baseCtor => {
Object.getOwnPropertyNames(baseCtor.prototype).forEach(name => {
if (name !== 'constructor') {
derivedCtor.prototype[name] = baseCtor.prototype[name];
}
});
});
}
Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow