2014-11-27 2 views
5

PhantomJs에서 사용하는 typescript (I C# 프로그래머)로 큰 JS 프로젝트를 변환했습니다. 이 js 파일을 실행하는 동안 인터프리터 (phantomjs)가 실패하는 문제가 있습니다.typescript 컴파일 된 파일을 시작하지 못했습니다.

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') 

코드는 다음과 같습니다

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 __(); 
}; 

겠어요 - 문제는 상속과 다소 관련이 있다고 생각합니다. 이 문제가 발생 했습니까? 어떤 도움을 주셔서 감사합니다. 감사.

+0

(당신이 .js 확장을 사용하여로드 순서를 확인하는 확인하는 것은) HTTP를 수행 : // WWW. typescriptlang.org/Playground가 코드를 컴파일합니까? 아니면 코드의 평화? typescript에 대한 소스 맵을 생성하고 Chrome의 devtools에서 typescript의 버그가있는 부분을 검사하는 것도 가능합니다. –

답변

12
이 오류의 가장 일반적인 원인은 당신이 예를 들어 ... 잘못된 순서로 파일을로드하는 것입니다

...

파일 검색

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

파일 B

class ExampleSubClass extends ExampleClass { 

} 

File A 앞에 File B을로드하는 경우 설명하는 정확한 오류가 표시됩니다. (여기에는 File A을로드하거나 이후에 File A을로드하는 것을 잊어 버리는 것이 포함됩니다). 당신은 하나의 파일로 모든 파일을 결합하는 (그리고 아마도 _references.ts 파일을 사용하는) 참조가 올바른 순서로되어 있는지 확인하면

수정

.

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

당신은 스크립트 태그를 사용하는 경우, 그것은 유사한 수정입니다

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

감사합니다. 도움이된다) – user2598575

관련 문제