我在尝试在我的 TypeScript 项目中导入类型时遇到问题。我不完全确定导入是如何工作的......
文件脚.ts
module Foo {
export class Bar {
}
}
文件 bar.ts
import { Bar } from "Foo";
Cannot find module 'Foo'.
import { Bar } from "../scripts/Foo";
File '/scripts/foo.ts' is not a module.
那么,我在这里误解了什么?另外,我应该使用
module
或 namespace
,和有什么区别?备注
foo.ts
和 bar.ts
都在同一个位置...我可以省略 ../scripts/
?
最佳答案
您缺少的是 TypeScript 支持两种类型的模块 - external和 internal .内部模块在较新版本中被重命名为命名空间(这就是旧的 module
和较新的 namespace
关键字的原因——你可以在你的项目中随意使用它们/它们是平等的)。
当您使用时 import
bar.ts 中的语法您正在尝试使用外部模块。
但是 foo.ts 不是外部模块,除非您添加 export
进入根范围。
我建议留在 import
并使用这样的外部模块:
脚
export class Bar {
}
Bar.ts
import { Bar } from "./Foo"; // path needs to be relative here
// if referencing files are in same folder use ./ to force the path to be relative
没有必要使用
module
/namespace
直到您想将类包装到命名空间中。
关于typescript - 了解 TypeScript 导入、模块和命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41764039/