打字.当使用“三重斜线”时,是否仍然需要三重斜线参考;从“进口”;

Typescript. Are Triple-Slash references still required when using "import from"

本文关键字:三重 参考 进口 三重斜线 打字 是否      更新时间:2024-03-08

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

/// <reference

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

import Greeter from "./greeter";

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

顺便说一句。如果我们在tsconfig.json中使用filesGlob而不是files,编译器现在会知道它必须按照哪个顺序编译TS文件吗?

首先,我认为filesGlob还没有得到官方支持:https://github.com/Microsoft/TypeScript/issues/1927

现在,就三斜杠引用而言,不需要像tsconfig.json中的files中引用的所有内容那样长

你会发现,如果你使用tsdtypings这样的工具来管理外部库的类型定义,它们会创建一个文件,你可以将其包含在tsconfig.json中;单个文件将使用三斜杠引用来包括其余文件。

您可以在TypeScript手册

中找到有关三斜杠引用的更多信息

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

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

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

至于fileGlobs,这还没有在TypeScript中实现,但即使实现了,我认为它也不太可能改变项目中文件的依赖关系解析。即使在他们实现fileGlob的atom类型脚本中,他们也非常反对"依赖于任何形式的js排序"的代码,并且除了手动排序tsconfig.json中的文件外,他们不支持任何其他方式。