【问题标题】:TypeScript enum index validationTypeScript 枚举索引验证
【发布时间】:2021-09-15 10:57:39
【问题描述】:

考虑这段代码:

export enum ResponseCodes {
    'Network error' = 5003
}

const code: ResponseCodes = 4000 // No error
  1. 枚举没有这样的键。为什么没有错误?
  2. 如何在下面强制使用这种结构:
const code: ResponseCodes = ResponseCodes['Network error']

【问题讨论】:

  • 友情提示,在这种情况下不要使用数字枚举。请查看枚举编译后收到的值。

标签: typescript validation enums


【解决方案1】:

枚举没有这样的键。为什么没有错误?

ResponseCodes 编译为

{
 5003: "Network error",
 Network error: 5003,
}

这就是const code: ResponseCodes = 4000 不抛出错误的原因。这是数字枚举的一个缺点,每个数字都可以分配给枚举。

如何在下面强制使用这种结构:

此代码const code: ResponseCodes = ResponseCodes['Network error'] 有效

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-12
    • 1970-01-01
    • 2010-09-06
    • 2012-07-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-25
    • 2017-12-14
    相关资源
    最近更新 更多