使用导入时,TypeScript将不会parsing模块

// Modules/MyModule.ts -------------------------------- import fs = require("fs"); module Hello { export function World(): string { return "Hello World"; } } // Main/App.ts ---------------------------------------- console.log(Hello.World()); // Cannot find name 'Hello' 

出于某种原因,这会产生上面指定的错误。 奇怪的是,如果我取消注释导入声明,我不会得到这个错误了。 (反正没用过)

两者都产生相同的错误:

tsc Main/App.ts --module "commonjs"

tsc Main/App.ts --module "amd"

这真的是一个编译器错误,或者我错过了一些东西。 我是否需要指定外部模块需要不同?

这个问题非常多 – 在TypeScript中快乐和快乐的关键是select内部模块外部模块,而不是两者。

我已经写了更多关于在TypeScript中select内部和外部模块的内容 。 底线是只选一个

在你的情况下,你需要完全承诺外部模块。 这是一个更新的例子:

 // Modules/Hello.ts -------------------------------- import fs = require("fs"); export function World(): string { return "Hello World" } 

上述文件的模块名称是Hello ,因为它位于名为Hello.ts的文件中。

你可以像这样使用它…

 // Main/App.ts ---------------------------------------- import Hello = require("./Modules/Hello"); console.log(Hello.World()); 

ps节点应用程序使用commonjs模式编译 – 但是这也适用于AMD。