typescript如何解析@types/<;项目文件夹>;?

typescript如何解析@types/<;项目文件夹>;?,typescript,Typescript,在本发明中,描述了例如从'moduleB'导入{name}的,它查找/root/node_modules/@types/moduleB.d.ts(以及其他)。当我检查时,@types文件夹通常有包文件夹,而不是文件。然而,它是有效的——编译器显然正在查看这些包文件夹。它解析正确的根/node_modules/@types/moduleB/index.d.ts tsc检查node_modules/@types的包文件夹是否有其他规则?手册中的描述是否有些不准确,或者只是我误解了什么 我意识到,no

在本发明中,描述了例如从'moduleB'导入{name}的
,它查找
/root/node_modules/@types/moduleB.d.ts
(以及其他)。当我检查时,
@types
文件夹通常有包文件夹,而不是文件。然而,它是有效的——编译器显然正在查看这些包文件夹。它解析正确的
根/node_modules/@types/moduleB/index.d.ts

tsc检查
node_modules/@types
的包文件夹是否有其他规则?手册中的描述是否有些不准确,或者只是我误解了什么


我意识到,
node\u modules/@types
在其他方面似乎很特别。例如,默认情况下,如果不清除
类型
编译器选项
,或
类型根
,则将包含来自
/node\u modules/@types
的全局声明。对我来说,这仍然不能解释为什么它会找到一个包导入的“正确”定义,而通过文档,它永远不应该在文件夹中查找这些定义。

Types resolution会尝试匹配几个不同的包布局和命名约定。您可以通过在项目中运行
tsc--noEmit--traceResolution
来观察这一点。无论如何,这种行为是正确的。谢谢。在我看来,这本手册的文章似乎试图提供所有尝试的详尽清单,但事实并非如此?是否有关于它在何处以及查找什么的完整描述?类型解析尝试匹配几个不同的包布局和命名约定。您可以通过在项目中运行
tsc--noEmit--traceResolution
来观察这一点。无论如何,这种行为是正确的。谢谢。在我看来,这本手册的文章似乎试图提供所有尝试的详尽清单,但事实并非如此?有没有关于它在哪里和寻找什么的完整描述?