TypeScript在同一文件夹中找不到js模块

时间:2015-09-07 21:06:56

标签: node.js typescript

我正在努力加载.js模块,该模块与我的.ts文件位于同一文件夹中。我在同一个文件夹中有4个文件:

index.ts

/// <reference path="./node.d.ts" />
/// <reference path="./foo.d.ts" />

import foo = require('./foo.js');

node.d.ts

https://github.com/borisyankov/DefinitelyTyped/blob/master/node/node.d.ts

复制

foo.d.ts

declare module "foo" {
    export function hello(): void;
}

foo.js

module.exports = {
    hello: function() {
        console.log('hello');
    }
};

当我运行tsc index.ts --module commonjs时,我收到以下错误:

index.ts(4,22): error TS2307: Cannot find module './foo.js'.

2 个答案:

答案 0 :(得分:4)

由于node.js将通过相对路径解析foo而不是在node_modules目录中查找它,就像你通过npm安装的模块一样,你需要删除{在declare module "foo"中{1}}。此外,在foo.d.ts中,在调用index.ts时删除.js扩展名。

<强> foo.d.ts

require

<强> index.ts

export function hello(): void;

答案 1 :(得分:1)

尝试使用不带相对路径的require

var foo = require('foo');

有关详情,请参阅相关的article