如何在Node.js中注册全局的TypeScript Enum

我想使我的TypeScript枚举全局,所以我不需要跨我的应用程序导入它们。

我到目前为止:

读state.enum.ts

export enum ReadState { Unread = 4000, Read = 4001 } 

enums.ts

 import { ReadState } from './read-state.enum'; const enums = { ReadState } global['Enums'] = enums; declare var Enums: typeof enums; 

然后在index.ts中

 import './enums'; // do this once to initialize enums var _enums = Enums; // [ts] Cannot find name 'Enums'. 

而在运行时这可能工作,我不能通过declare var Enums: typeof enums;引用declare var Enums: typeof enums; 因为该文件是一个模块。

如何在不导入模块的情况下引用此types定义,同时将未来的枚举定义保留在单独的文件中?

更新:我也需要设置函数的返回types为ReadState枚举。

基于目前select的答案,我有这样的:

 import { ReadState } from './read-state.enum'; const enums = { ReadState: ReadState } declare global { const Enums: typeof enums; } 

在另一个文件中,我想设置这些函数的返回types,但TypeScript很不愉快:

 function getState1(): Enums.ReadState { return Enums.ReadState.Unread; } function getState2(): typeof Enums.ReadState { return Enums.ReadState.Read; } 

使用declare global块:

 declare global { const Enums: typeof enums; }