我在项目中声明了一些类型,我想知道如何使用它们而不在整个项目中导出和导入它们。我知道index.d.ts在项目中的模块中的工作方式类似,但是我正在尝试在整个项目中使用该行为。
我认为您可能可以在项目根目录中创建一个d.ts
文件,例如:
// globals.d.ts
import { MyGlobalType } from './src/my-global'
declare global {
var MyGlobal: MyGlobalType
}
然后执行您的实现:
// src/my-global.ts
export interface MyGlobalType {
test(): string
}
window.MyGlobal = {
test() { return 'test' }
}
最后,作为您的应用程序要做的第一件事之一,加载实现以将其置于应用程序其余部分期望的全局范围内。
// src/index
import './src/my-global'
也就是说,我会仔细检查这确实是想要的。在大多数代码库中,这将是一种不好的方法的信号。真正的全局变量有其用途,只需确保这确实是您想要做的最好的方法即可。