2014-01-16 50 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'.

使其儘可能簡單。我嘗試了很多,但沒有成功地訪問類的mongoose.d.ts

回答

2

而不是使用一個參考意見,你應該導入模塊:

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

通常情況下,你能不能把.d.ts請輸入與.js文件相同的名稱(和位置),以便導入語句也可以在運行時加載它。

+0

這幾乎可行。現在的問題是,它拋出:'錯誤:無法找到模塊'../ def/mongoose''。這是因爲沒有實際的js文件。我會看看是否有助於在d.ts旁創建一個.ts來解決這個問題。 – Tarion

+0

當您使用CommonJS時,您需要將JavaScript文件和TypeScript定義文件放在同一位置: '/ scripts/mongoose.d.ts'和'/ scripts/mongoose.js' – Fenton

+0

因此將它作爲外部模塊根本無法工作? – Tarion