खोज…


वाक्य - विन्यास

  • क्लास बीटलग्यु क्लेम्बस, बुलेटप्रूफ {} लागू करता है
  • 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