我想让我的TypeScript Enums全局化,所以我不需要在我的应用程序中导入它们。
到目前为止我所拥有的:
读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;
引用枚举,因为该文件是一个模块。
如何在不导入模块的情况下引用此类型定义,同时将未来的枚举定义保存在单独的文件中?
更新:我还需要将函数的返回类型设置为ReadState
枚举。
根据当前选择的答案我有:
import { ReadState } from './read-state.enum';
const enums = {
ReadState: ReadState
}
declare global {
const Enums: typeof enums;
}
在另一个文件中,我想在这些函数上设置返回类型,但TypeScript不满意:
function getState1(): Enums.ReadState {
return Enums.ReadState.Unread;
}
function getState2(): typeof Enums.ReadState {
return Enums.ReadState.Read;
}
答案 0 :(得分:3)
使用declare global
块:
declare global {
const Enums: typeof enums;
}