gpt4 book ai didi

typescript - 记录类型反转器

转载 作者:行者123 更新时间:2023-12-02 01:52:40 25 4
gpt4 key购买 nike

我想反转具有唯一常量属性值的记录的属性名称和类型。

const VALUE = {
field1: "fieldA",
field2: "fieldB"
} as const

type Reversed = Reverser<typeof VALUE>

//which should yield the following type
type Reversed = {
fieldA: "field1";
fieldB: "field2";
}

我认为这是不可能的,因为属性值不一定是唯一的。但我还是要问 ;-)

最佳答案

您可以使用带有 as 子句的映射类型:

type Reverser<T extends Record<PropertyKey, PropertyKey>> = {
[P in keyof T as T[P]]: P
}

Playground Link

as 子句将采用 P 键并将其映射到其他任何内容。在这种情况下,我们将其映射到键 P (T[P]) 处的属性类型。对于属性的值,我们只使用 P 作为类型。

关于typescript - 记录类型反转器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70037753/

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