2014-11-27 15 views
5

PhantomJs içinde kullanarak büyük JS projesini typescript'e (I C# programlayıcı olarak) dönüştürdüm. Bu js dosyası yürütülürken sorun tercüman (phantomjs) başarısız olur., döküm derlenmiş dosyayı başlatılamadı

D:\My\phantomjs-1.9.7-windows\phantomjs.exe --load-images=false --ssl-protocol=any --web-security=no --cookies-file=cookies C:\Users\alex\Projects\robot\bo.js 
TypeError: 'undefined' is not an object (evaluating 'b.prototype') 

kodudur:

var __extends = this.__extends || function (d, b) { 
    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p] 
    function __() { this.constructor = d; } 
    __.prototype = b.prototype; // <<< here 
    d.prototype = new __(); 
}; 

So. Sanırım sorun bir şekilde miras ile ilgili. Bu sorunla karşılaştı? Herhangi bir yardım takdir edilir. Teşekkürler.

+0

... (siz .js uzantıları kullanarak ve yükleme sırasını kontrol ettiğinizden emin yapma) http yapar: // www. typescriptlang.org/Playground kodunuzu derliyor mu? ya da belki bir barış hukuku? Aynı zamanda, kaynak için kaynak haritaları oluşturmak ve krom –

cevap

12
Bu hatanın en yaygın nedeni, örneğin ... yanlış sırada dosyaları yükleme olmasıdır

...

Dosya A

class ExampleClass { 
    someMethod() { 
     alert('Hello World'); 
    } 
} 

Dosya B

class ExampleSubClass extends ExampleClass { 

} 

ürününü File A yüklemeden önce, tanımladığınız hatanın aynısını alırsınız. (Bu, File A yüklenmesini veya 'dan sonra yüklenmesini unutmayı içerir). Tek bir dosya içine tüm dosyaları birleştirerek (ve muhtemelen bir _references.ts dosyası kullanıyorsanız) referanslar doğru sırada olduğundan emin yaparsanız

Düzeltmeler

.

/// <reference path="file-a.ts" /> 
/// <reference path="file-b.ts" /> 

Eğer komut dosyası etiketleri kullanıyorsanız, benzer bir düzeltmedir

<script src="file-a.js"></script> 
<script src="file-b.js"></script> 
+0

'daki devetlerde kod çizelgesinin buggy kısmını incelemek mümkündür. Çok teşekkürler! Yardımcı olur) – user2598575