.d.ts 文件的范围是什么

What is the scope of .d.ts files

所以我在 Typescript Next.js 项目中使用 react-table。这个包由默认不包含但必须在主 useTable 挂钩中启用的模块(如排序、分页等)组成。默认情况下,类型的设置方式不包括与模块相关的属性。

我遵循以下说明:https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react-table

它说创建一个 react-table-config.d.ts 文件并将其放在我的源目录中的某个位置,然后修改它以仅包含我需要的模块。

然而,虽然我可能在一个组件中需要某些模块,但在另一个组件中可能不需要。所以我想知道这些文件是否具有全局范围,或者是否可以为两个单独的组件创建两个这样的文件。

例如,如果我有以下目录结构:

src
|
|-- components
|   |
|   |-- sorted-table
|   |   |
|   |   |-- index.tsx
|   |   |
|   |   |-- react-table-config.d.ts
|   |
|   |-- paginated-table
|   |   |
|   |   |-- index.tsx
.   .   |
.   .   |-- react-table-config.d.ts
.   .
``` 

我觉得这样用的话放在哪里都无所谓

declare global{
//write any interface,type,etc
}
// in the end of the file
export {};

现在您可以使用文件中的任何内容而无需导入它

您只需要为 package.json 中定义的每个包创建一个 d.ts 文件。

However while I might need some modules in one component, I might not need it in another. So I was wondering whether such files have a global scope or if it is possible to have two such files for two seperate components.

是的,它具有全球范围,不可能在一个项目中为同一个包设置两个 d.ts。你可以把它放在你项目的任何地方,只要它在 tsconfig filesinclude.

里面

TypeScript 将查找 tsconfig.json files, include, exclude 下指定的所有 d.ts 文件,并将 declare 映射到正确的包。