You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TypeScript:如何将枚举对象赋值给全局对象属性?

TypeScript全局声明IIFE导出的枚举对象

要让TypeScript识别全局window.test.ExampleEnum是整个枚举对象而非单个枚举值,只需在全局声明中使用typeof ExampleEnum作为类型注解,具体操作如下:

  1. 保留已有的枚举声明:
export declare enum ExampleEnum {
    HELLO = "HELLO"
}
  1. 修改全局声明代码,将ExampleEnum的类型指定为typeof ExampleEnum:
declare global {
  var test: { ExampleEnum: typeof ExampleEnum }
}

原理说明

  • ExampleEnum本身代表的是枚举值的联合类型(此处为ExampleEnum.HELLO,即字符串字面量"HELLO")
  • typeof ExampleEnum才是整个枚举对象的类型,包含所有枚举成员的键值映射,正好对应IIFE版本挂载到全局的枚举对象

这样声明后,TypeScript就能正确识别window.test.ExampleEnum.HELLO的类型,并且提供对应的代码提示。

内容的提问来源于stack exchange,提问作者WMorkowski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 21:22:07