在TypeScript中有两个引用文件/模块的概念。即使我简要介绍了TypeScript文档,但我还不清楚何时应该使用哪种方法:
/// <reference path="..." />
import { Foo } from "./Foo";
由于
答案 0 :(得分:8)
重要的是要理解这些不是引用文件/模块的两个概念。他们实际上有两件完全不同的东西。
import
此关键字是在ES2015中引入的,因此是其实现的一部分,即JavaScript。它不仅仅引用文件/模块,而是读取引用的模块并使其API /公开的内容可供您使用。
在import
之前,我们必须使用某种concat机制或在HTML中使用<link>
来获取说jQuery的权限。现在我们可以import * as $ from 'jQuery'
和JavaScript / TypeScript自动&#34;自动&#34;为我们加载模块。至少这是Loader完成后将来会做的事情。
如果你正在使用TypeScript,TypeScript编译器也会知道代码所导出的类型/签名/ ... ...
/// <reference>
有点奇怪的<reference>
注释用于从外部.d.ts
文件中提取类型定义。但是使用较新版本的TypeScript,你不应该再这样做了。您可以阅读有关decalration文件here的未来。
因此import
和<reference>
之间的差异是import
将加载&#34;真实&#34;代码并让它可用。另一方面,<reference>
只会为您导入类型定义。在您的编辑器/ IDE中,它看起来像您正在使用代码,但实际上TypeScript知道暴露的API并且假装实际上可以使用加载的模块。当您想要运行代码时,可以使模块(全局)可用。
答案 1 :(得分:0)
<reference />
在使用名称空间时很有用。