gpt4 book ai didi

javascript - 如何从对象创建模板文字类型以具有键=值?

转载 作者:行者123 更新时间:2023-12-05 03:22:48 24 4
gpt4 key购买 nike

我有一个对象

{
foo: "bar",
a: "b",
roses: "red",
}

我想创建一个模板文字,它会给我以下可能性:

"foo=bar" | "a=b" | "roses=red" 

所以基本上,键=值

到目前为止我所做的是:

type Foo = `${keyof typeof obj}=${typeof obj[keyof typeof obj]}`;

但这给了我所有可能的组合:

"foo=bar" | "foo=b" | "foo=red" | "a=bar" | ...

我觉得我需要使用一个泛型,但我无法让它工作

最佳答案

您可以使用自索引mapped type :

const obj = {
foo: "bar",
a: "b",
roses: "red",
} as const;

type Foo = {
[K in keyof typeof obj]: `${K}=${typeof obj[K]}`
}[keyof typeof obj];

计算结果为:

type Foo = "foo=bar" | "a=b" | "roses=red"

Playground link

关于javascript - 如何从对象创建模板文字类型以具有键=值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72628227/

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