根据嵌套属性创建联合类型

时间:2019-09-19 14:30:31

标签: typescript

假设我有以下几种类型:

interface FooAction {
    type: "foo";
    data: any;
}

interface BarAction {
    type: "bar";
    data: any;
}

type AllActions = FooAction | BarAction;

给出AllActions,如何基于type属性生成联合类型?我想检索一个类型:

type AllTypes = "foo" | "bar"

2 个答案:

答案 0 :(得分:3)

您可以使用index type query

type AllTypes = AllActions['type'] // same as "foo" | "bar"

答案 1 :(得分:3)

您接近了!由于它们都具有[String: String]属性,因此您可以将type添加到您的联合中,以仅获取["type"]属性的类型。

type

TypeScript Playground