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

如何获取包含静态成员的类的值类型?

获取静态类成员值的联合类型

假设我有如下静态类:

class StaticClass {
  static readonly HELLO = 1
  static readonly WORLD = 2
}

我需要把这个静态类的成员值提取出来作为类型,得到如下结果:

type ValueOfStaticClassMember = 1 | 2;

可以通过typeof操作符结合索引类型实现这个需求,核心逻辑是先获取类的静态类型,再提取该类型下所有值的联合类型:

分步实现

// 先获取StaticClass的静态类型,包含所有静态成员的类型信息
type StaticClassStaticType = typeof StaticClass;
// 提取所有静态成员值的联合类型
type ValueOfStaticClassMember = StaticClassStaticType[keyof StaticClassStaticType];

简化写法

也可以合并为一行代码:

type ValueOfStaticClassMember = (typeof StaticClass)[keyof typeof StaticClass];

注意事项

这种方式仅适用于静态成员是字面量常量的场景,如果静态成员的类型是宽泛的(比如直接声明为number而非具体数值),那么得到的类型也会是宽泛的number,而非具体的数值联合。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 08:15:43