2014-01-16 3 views
0

저는 완전히 당황했습니다. Nodejs 사용.Nodejs의 Typescript 가져 오기 메커니즘

갖는 다음과 같은 설정 :

컴파일 -target ES5 --module commonjs

/def/mongoose.d.ts:

export = M; 

declare module M { 

    export class Collection { 
     name:string; 
    } 
} 

/model/users.ts:

///<reference path='..\def/mongoose.d.ts' /> 

export var foo:M.Collection; 

오류 : /model/users.ts(21,16): error TS2095: Could not find symbol 'M'.

가능한 한 간단하게 만들었습니다. 나는 많은 시도했지만, 당신은 모듈 가져와야 참조 주석을 사용하는

답변

2

대신 mongoose.d.ts의 클래스에 액세스 관리되지 않은 : 일반적으로

import M = require('./def/mongoose'); 
export var foo: M.Collection; 

, 당신은 .d.ts을 줄 것을 .js 파일과 동일한 이름 (및 위!)을 제출하십시오. 그러면 임포트 명 령문이 런타임에로드합니다.

+0

거의 작동합니다. 이제 문제는 다음과 같습니다 :'오류 : 모듈을 찾을 수 없습니다 '../def/mongoose''. 이것은 실제 js 파일이 없기 때문입니다. 문제를 해결하기 위해 dts 옆에 .ts를 만드는 것이 도움이되는지 알 수 있습니다. – Tarion

+0

CommonJS를 사용하는 경우 JavaScript 파일과 TypeScript 정의 파일을 '/ scripts/mongoose.d.ts' 및'/ scripts/mongoose.js' – Fenton

+0

같은 외부 위치에 넣으십시오. 모듈이 전혀 작동하지 않습니까? – Tarion

관련 문제