【问题标题】:Is it possible to have nested enum in Typescript?是否可以在 Typescript 中嵌套枚举?
【发布时间】:2022-01-08 19:42:40
【问题描述】:

拥有这些枚举:

export enum First {
  TEST_1 = 'test_1',
  TEST_2 = 'test_2'
}

export enum Second {
  TEST_3 = 'test_3',
  TEST_4 = 'test_4'
}

可以合并成一个吗?

类似:

export enum Main {
  First {
    TEST_1 = 'test_1',
    TEST_2 = 'test_2'
  },
  Second {
    TEST_3 = 'test_3',
    TEST_4 = 'test_4'
  }
}

【问题讨论】:

  • 只有数字枚举可以有计算成员,但是这个表达式的类型是 '{ TEST_1: string; TEST_2:字符串; }'。如果您不需要详尽检查,请考虑改用对象文字。听 ts :))
  • “嵌套”的目标是什么?

标签: javascript typescript ecmascript-6 types enums


【解决方案1】:

您不能在 TypeScript 中创建嵌套枚举。您可以做的是创建一个小技巧,您可以在其中创建一个对象(Main),该对象包含一堆枚举并基本上实现相同的效果

enum First {
    TEST_1 = "Main.First.Test1",
    TEST_2 = "Main.First.Test2"
}

enum Second {
    TEST_3 = "Main.Second.Test3",
    TEST_4 = "Main.Second.Test4"
}

const Main = {
    First,
    Second
};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-07
    • 1970-01-01
    • 2015-05-05
    • 1970-01-01
    • 1970-01-01
    • 2021-01-15
    • 1970-01-01
    相关资源
    最近更新 更多