如何在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; }