2014-01-16 31 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