没有“声明全局”的 Typescript 全局类型

问题描述 投票:0回答:1

这不是问题,我只是好奇这怎么可能。

我在项目中创建了简单的泛型类型,并且已经使用它好几天了。突然我注意到,我从未从文件中导出它,也没有导入到我使用它的文件中。它放置在 src/types/returnComponentType.ts 中,而不是类似 src/@types/global.d.ts 中,所以技术上它不应该工作。

有人遇到过类似的事情或知道为什么会发生这种情况吗?

通用型

使用示例

reactjs typescript
1个回答
0
投票

TypeScript 允许您在某些情况下使用类型而无需显式导入或导出它们。这就是它可能发生的原因。

全局声明合并:TypeScript 执行全局声明合并,这意味着它会自动合并跨文件的多个同名声明。如果您在一个文件中定义类型而不导出它,然后在另一个文件中使用它而不导入它,则 TypeScript 仍可能因这种行为而识别它。 项目结构:即使您的类型没有放置在 src/@types/global.d.ts 这样的常规位置,如果它位于 src/types 目录中,TypeScript 仍然可以识别它,特别是如果您的 tsconfig.json 包含该目录在 typeRoots 中或包含设置。

© www.soinside.com 2019 - 2024. All rights reserved.