使用 npm 定义时 tsc 如何获取其定义

How does tsc get its definitions when using npm definitions

所以我从使用 typings 改为只使用 npm。 所以你在 node_modules 中有 @types 目录,但除此之外,没有其他文件。

使用 typings 我总是必须在 typings 中包含 index.d.ts 文件,但使用 npm 则没有必要。我想问一下为什么会这样。

npm 是否使用了 tsc 的某种隐藏功能,或者 Microsoft 和 npm 背后的人是否同意某些事情?

是的,tsc 自动检查 ./node_modules/@typesTake a look:

By default all visible “@types” packages are included in your compilation. Packages in node_modules/@types of any enclosing folder are considered visible; specifically, that means packages within ./node_modules/@types/, ../node_modules/@types/, ../../node_modules/@types/, and so on.