में विस्तार विधियां मेरे कोणीय 2 प्रोजेक्ट में मैं टाइपस्क्रिप्ट का उपयोग कर स्ट्रिंग कक्षा के प्रोटोटाइप को बढ़ाने का प्रयास कर रहा हूं। मैं एक 'में शामिल है परिभाषित नहीं है' प्राप्तटाइपस्क्रिप्ट (सिस्टम)
interface String
{
startsWith(s:string);
contains(s:string);
containsOr(s1:string, s2:string);
}
String.prototype.startsWith = function (s:string):boolean {
return this.indexOf (s) === 0;
}
String.prototype.contains = function (s:string):boolean {
return this.indexOf(s) > 1;
}
String.prototype.containsOr = function (s1:string, s2:string):boolean {
return this.indexOf(s1) > 1 || this.indexOf (s2) > 1;
}
इस कोड को परियोजना compiles साथ
(भी सामग्री दृश्य स्टूडियो संहिता की सहायता मुझे मदद करता है), लेकिन रन-टाइम में: यह मेरा कोड है।
मैं क्या गलत कर रहा हूं?
धन्यवाद एक बहुत
पुनश्च: यह मेरा tsconfig है:
{
"compilerOptions": {
"target": "es5",
"module": "system",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": false,
"outDir": "wwwroot/app/source/"
},
"exclude": [
"node_modules",
"bower_components",
"wwwroot",
"typings/main",
"typings/main.d.ts"
]
}
संपादित
मैंने देखा है कि js फ़ाइल आयात में index.html यह काम करता है, लेकिन मुझे यह दृष्टिकोण पसंद नहीं है। html में कोड आयात करने की
<script src="app/source/utils/extensions.js"></script>
क्या आपने अपना एक्सटेंशन आयात किया था? यदि आप मॉड्यूल लोडर का उपयोग कर रहे हैं तो आपको यह जांचना होगा कि आपके द्वारा लिखे गए कोड को वास्तव में लोड किया गया है या नहीं। –
धन्यवाद लुका। आयात के साथ आपका क्या मतलब है? मैं कक्षा का निर्यात नहीं कर रहा हूं। मैंने अधिक जानकारी के साथ प्रश्न अपडेट किया – user3471528
ठीक है System.js में आपको संकलक कहने की आवश्यकता होगी कि आपका कोड कहां खोजें। यह आपके सभी आयातों का पालन करता है और सामग्री को लोड करता है, उन्हें हल करता है। इस तरह आप सभी जेएस फाइलों को एचटीएमएल में डालने से बच सकते हैं। –