gpt4 book ai didi

TypeScript:强制字符串文字类型只有一个值

转载 作者:行者123 更新时间:2023-12-05 06:28:08 25 4
gpt4 key购买 nike

让我们以下面的字符串文字为例:

type Country = "RU" | "US" | "CN"

TL;DR;

问题是:是否有任何运算符可以强制某个枚举只接受一个可能的值?First<Country>Single<Country> .

推理

Exclude从另一组可能值中减去一组特定值的操作。使用 Pick , Omit , Exclude等应用于一组值,返回一组新值,这将允许潜在的多个值。

我感兴趣的用例:Replace<T, K extends keyof T, NEW>替换了 T 中的一个键使用新类型 NEW . K extends keyof TT 上允许多个键.我正在尝试寻找是否有可能限制为仅定义一个可能的值(即,如果通过了多个值,TS 将抛出错误)。

如果没有办法限制允许值的集合(可能已证明),那仍然是一个有效的答案。

最佳答案

您可以尝试使用实际枚举而不是字符串联合。它可能看起来像这样:

export enum Country {
RU = 'Russia',
US = 'United States',
NZ = 'New Zealand',
}

然后只需断言您的值是其中一种类型即可。例如:Country.NZ

注意:类型"New Zealand" 不能分配给类型Country.NZ,因为它是一个字符串。要检查字符串是否匹配,您可以使用反向映射。

在此处查看有关枚举和反向映射的文档 -> https://www.typescriptlang.org/docs/handbook/enums.html#reverse-mappings

关于TypeScript:强制字符串文字类型只有一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54659997/

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