使用导入时 TypeScript 不会解析模块
TypeScript won't resolve module when import is used
// 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'
出于某种原因,这会产生上述错误。奇怪的是,如果我取消注释 import 语句,我就不会再收到此错误。 (反正没用)
两者都产生相同的错误:
tsc Main/App.ts --module "commonjs"
tsc Main/App.ts --module "amd"
这真的是编译器错误还是我遗漏了什么。我是否需要指定外部模块需要某种不同?
这个经常出现 - 在 TypeScript 中获得快乐和幸福的关键是选择 内部模块 或 外部模块而不是两者。
关于 choosing between internal and external modules in TypeScript 我写了更广泛的文章。底线是仅选择 one.
在您的情况下,您需要完全致力于外部模块。这是一个更新的例子:
// 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());
p.s。 Node 应用程序使用 commonjs
模式编译 - 但这也适用于 AMD。
// 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'
出于某种原因,这会产生上述错误。奇怪的是,如果我取消注释 import 语句,我就不会再收到此错误。 (反正没用)
两者都产生相同的错误:
tsc Main/App.ts --module "commonjs"
tsc Main/App.ts --module "amd"
这真的是编译器错误还是我遗漏了什么。我是否需要指定外部模块需要某种不同?
这个经常出现 - 在 TypeScript 中获得快乐和幸福的关键是选择 内部模块 或 外部模块而不是两者。
关于 choosing between internal and external modules in TypeScript 我写了更广泛的文章。底线是仅选择 one.
在您的情况下,您需要完全致力于外部模块。这是一个更新的例子:
// 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());
p.s。 Node 应用程序使用 commonjs
模式编译 - 但这也适用于 AMD。