gpt4 book ai didi

javascript - typescript :将相似对象的并集转换为对象类型

转载 作者:行者123 更新时间:2023-12-05 02:46:40 24 4
gpt4 key购买 nike

如何使用 TypeScript 类型将相似对象的并集转换为对象类型?

输入

type I = {
key: 'foo',
value: Foo,
} | {
key: 'bar',
value: Bar,
};

输出

type O = {
foo: Foo,
bar: Bar,
};

我不确定这是可能的。但谁知道呢?请注意,该任务不是 that 的重复任务.

最佳答案

在 TypeScript 4.1 中,这是一个简单的 mapped type with key remapping .您可以遍历 I union 的每个成员 T (它是一个并集,而不是一个交集)和 look up键/值类型:T['key'] 用于键,T['value'] 用于值。像这样:

type O = { [T in I as T['key']]: T['value'] };
/* type O = {
foo: Foo;
bar: Bar;
} */

Playground link to code

关于javascript - typescript :将相似对象的并集转换为对象类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65375625/

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