/// <reference types ="node"/>是什么意思?

cha*_*ham 13 typescript typescript-typings

我遇到了打字稿和节点的问题,偶然发现了一个修复程序(我得到了一个TS抱怨'过程'没有定义,如在Node中的process.env).我所要做的只是在我的文件顶部粘贴一行:

/// <reference types="node" />
Run Code Online (Sandbox Code Playgroud)

我不懂语法.打字稿编译器是否以某种方式阅读评论?这是如何运作的?

cas*_*ber 14

这些被称为"三重斜线指令" (Typescript docs)

如该链接的第一行所述:

三斜杠指令是包含单个XML标记的单行注释.注释的内容用作编译器指令.

所以,是的,打字稿编译器在编译期间选择了这个并采取适当的行动.

在这种情况下,由于您使用的是types指令,因此您告诉编译器此文件依赖于类型node.

也就是说,文档还说明了types指令:

仅在d.ts手动创作文件时才使用这些指令

因此,如果您添加了这个.ts文件而不是.d.ts文件,您可能会为自己设置更多问题.

要在.ts文件中声明对@types包的依赖,请在命令行或tsconfig.json中使用--types.有关更多详细信息,请参阅在tsconfig.json文件中使用@types,typeRoots和types.