Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript:在.d.ts文件中声明一个类型并在不导入的情况下使用它_Typescript - Fatal编程技术网

Typescript:在.d.ts文件中声明一个类型并在不导入的情况下使用它

Typescript:在.d.ts文件中声明一个类型并在不导入的情况下使用它,typescript,Typescript,我想知道在不直接导入类型或接口的情况下使用类型或接口的正确方法是什么(如果这是一个好主意的话) 目前我有以下代码: import { TCollection } from "../__types__"; function doSomething(collection: TCollection) { // ... } 因此,为了摆脱import语句,我尝试用以下值替换tsconfig.json中的typeroot: { "compilerOptions": { ...

我想知道在不直接导入类型或接口的情况下使用类型或接口的正确方法是什么(如果这是一个好主意的话)

目前我有以下代码:

import { TCollection } from "../__types__";

function doSomething(collection: TCollection) {
  // ...
}
因此,为了摆脱
import
语句,我尝试用以下值替换
tsconfig.json
中的
typeroot

{
  "compilerOptions": {
    ...
    "typeRoots": ["./src/__types__/types.d.ts", "./node_modules/@types"],
  }
}
并在
/src/\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuutypes.d.ts
中声明一个类型:

declare type TCollection = {
  ...
};
但仍然有一个错误:

function doSomething(collection: TCollection) {
                                 ^^^^^^^^^^^
                                 Cannot find name 'TCollection'.ts(2304)
}

我犯了一个错误,还是IDE的错误?谢谢

您可以在全局范围中定义类型:

//global-types.d.ts
从“某处”导入{Something};
宣布全球{
接口收集{
...
}
}
如果您不需要在
全局类型.d.ts
中导入任何内容,您可以直接声明接口:

//global-types.d.ts
从“某处”导入{Something};
接口收集{
...
}

不需要任何tsconfig更改

如果将typeroots更改为:“typeroots”:[“/src/\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu