Angular2 projemde, typescript kullanarak string dizisinin prototipini genişletmeye çalışıyorum. Bir 'tanımlı değil içeriyor' get proje derler Bu kod ileTypescript (sistem) uzantı yöntemleri (sistem)
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;
}
(ayrıca içerik Visual Studio Kanununun yardımcı bana yardım) ancak çalışma anında: Bu benim kodudur.
Neyi yanlış yapıyorum?
Çok teşekkürler
Not: Bu benim tsconfig geçerli:
{
"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"
]
}
DÜZENLEME
Ben js dosyasını içe index.html içinde çalıştığını fark, ama bu yaklaşımı sevmiyorum.
<script src="app/source/utils/extensions.js"></script>
Uzantılarınızı içe aktardınız mı? Bir modül yükleyici kullanıyorsanız, yazdığınız kodun gerçekten yüklü olup olmadığını kontrol etmeniz gerekir. –
Teşekkürler Luka. İthalatla ne demek istiyorsun? Dersi ihraç etmiyorum. Soruyu daha fazla detay ile güncelledim – user3471528
Sistem.js'de, derleyicinize kodunuzu nerede bulacağınızı söylemeniz gerekecek. Tüm ithalatlarınızı takip eder ve içeriği yükler. Böylece tüm js dosyalarını html'ye eklemekten kurtulabilirsiniz. –