gpt4 book ai didi

Typescript 'const' 对字符串枚举值的断言

转载 作者:行者123 更新时间:2023-12-04 17:31:37 25 4
gpt4 key购买 nike

我有这个枚举:

    enum Options {
Option1 = "xyz",
Option2 = "abc"
}

我想通过创建“xyz”的联合类型来使用这些值进行类型检查 | 'abc'。这是我的尝试,但我得到了这个“const”断言错误:

const validValues = Object.values(Options);
const validKeys = validValues as const;
~~~~~~~~~~~ A 'const' assertion can only be applied to references to
enum members, or string, number, boolean, array, or object
literals.

执行此操作的正确方法是什么?

最佳答案

您可以使用 Options 枚举作为类型

enum Options {
Option1 = "xyz",
Option2 = "abc"
}

let validValue: Options
validValue = Options.Option1

console.log(validValue) // xyz

// however, note that this is not allowed
// validValue = 'xyz'

这是另一种变体,实际上并没有使用枚举

type Options2 = {
Option1: 'xyz',
Option2: 'abc'
}

type keys = keyof Options2 // 'Option1' or 'Option2'
type values = Options2[keys] // 'xyz' or 'abc'

let validValue2: values
validValue2 = 'xyz'
console.log(validValue2) // xyz (duh!)

// this is not allowed
// validValue2 = 'nope'

关于Typescript 'const' 对字符串枚举值的断言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59201970/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com