gpt4 book ai didi

typescript - 了解 TypeScript 导入、模块和命名空间

转载 作者:行者123 更新时间:2023-12-04 16:55:49 25 4
gpt4 key购买 nike

我在尝试在我的 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.



那么,我在这里误解了什么?另外,我应该使用 modulenamespace ,和有什么区别?

备注 foo.tsbar.ts都在同一个位置...我可以省略 ../scripts/ ?

最佳答案

您缺少的是 TypeScript 支持两种类型的模块 - externalinternal .内部模块在较新版本中被重命名为命名空间(这就是旧的 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com