我正在通过阅读教程和[快速入门](https://github.com/angular/quickstart)来探索Angular 2(Typescript)。
我很好奇TypeScript编译器如何加载声明文件.d.ts
。
如果我将.d.ts
文件放在root
文件夹或/app
文件夹中,那么TypeScript编译器似乎只是自己选择它。没有其他对此文件的引用,但我可以在项目中的任何位置使用此文件中声明的变量,而不会出现编译器错误。
如果我将.d.ts
文件放在node_modules
下的子文件夹中,编译器就不像上一个例子那样自行选择它。
那么,编译器如何知道要加载的.d.ts
个文件?它只会加载.d.ts
及其子文件夹下的所有root
个文件,但node_modules
下除外?
谢谢!
答案 0 :(得分:3)
the documentation中对此进行了描述。最相关的摘录是:
目录中存在tsconfig.json文件表明该目录是TypeScript项目的根目录。
[...]
如果未指定“files”和“include”,则编译器默认包含所有包含目录和子目录中的TypeScript(.ts,.d.ts和.tsx)文件,但使用“exclude”排除的文件除外“财产
[...]
默认情况下,所有可见的“@types”包都包含在您的编译中。任何封闭文件夹的node_modules / @类型中的包被视为可见;具体而言,这意味着包装在./node_modules/@types/,../node_modules/@types/,../../node_modules/@types/等。