真的没有办法在没有进出口的情况下全局声明类型吗?

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

我在项目中声明了一些类型,我想知道如何使用它们而不在整个项目中导出和导入它们。我知道index.d.ts在项目中的模块中的工作方式类似,但是我正在尝试在整个项目中使用该行为。

typescript typescript-typings
1个回答
0
投票

我认为您可能可以在项目根目录中创建一个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'

也就是说,我会仔细检查这确实是想要的。在大多数代码库中,这将是一种不好的方法的信号。真正的全局变量有其用途,只需确保这确实是您想要做的最好的方法即可。

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