打字稿。使用"从"导入时仍需要使用Triple-Slash引用

时间:2016-04-08 14:22:04

标签: javascript typescript ecmascript-6

在旧版本的Typescript中,需要添加着名的

/// <reference

标签以添加所需的引用。现在版本 1.6 后,我们可以使用推荐的ES6方式导入依赖项

import Greeter from "./greeter";

我已经阅读了一段时间,但我仍然不清楚是否以及为什么必须完全避免三重斜杠参考。

顺便说一句。如果我们在tsconfig.json中使用filesGlob而不是files,编译器现在会知道编译TS文件的顺序是什么?

2 个答案:

答案 0 :(得分:3)

首先,我不相信filesGlob已得到官方支持:https://github.com/Microsoft/TypeScript/issues/1927

现在,就三重斜杠引用而言,它不需要像那样长,因为tsconfig.json files引用了所有内容。

您会发现,如果您使用tsdtypings之类的工具来管理外部库的类型定义,则会创建一个包含在tsconfig.json中的文件。单个文件将使用三次斜杠引用来包含其余文件。

您可以在TypeScript Handbook

中找到有关三斜杠参考的更多信息

答案 1 :(得分:2)

当使用内部模块/命名空间时,我们需要///<reference以告诉编译器什么依赖于什么来构建依赖图并按正确的顺序对文件进行排序。

您描述的ES6方式是(外部)模块,请参阅https://github.com/Microsoft/TypeScript/issues/2242。因此,连接的顺序不相关,因为它们是异步加载的。

因此,使用ES6模块,您不需要///<references

对于fileGlobs,这在TypeScript中尚未实现,但即使它已经实现,我认为它不太可能改变项目中文件的依赖项解析的任何内容。即使在他们实现fileGlobs的atom-typescript中,它们也是opinionated against代码,而且#34;依赖于任何形式的js排序&#34;并且除了在tsconfig.json中手动排序文件之外,他们不会以任何其他方式支持。