![](/img/trans.png)
[英]How to convert TypeScript object type to union type like Object.values() in TypeScript?
[英]Typescript: Convert union of similar objects to object type
如何使用 TypeScript 類型將相似對象的聯合轉換為 object 類型?
type I = {
key: 'foo',
value: Foo,
} | {
key: 'bar',
value: Bar,
};
type O = {
foo: Foo,
bar: Bar,
};
我不確定這是否可能。 但誰知道呢? 請注意,該任務與該任務不重復。
在 TypeScript 4.1 中,這是一個簡單的映射類型,帶有鍵重新映射。 您可以遍歷I
聯合的每個成員T
(它是聯合,而不是交集)並查找鍵/值類型: T['key']
用於鍵, T['value']
用於值。 像這樣:
type O = { [T in I as T['key']]: T['value'] };
/* type O = {
foo: Foo;
bar: Bar;
} */
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.