联合类型字段的类型

时间:2019-01-11 10:16:29

标签: typescript

我有一些描述消息的界面:


    interface Message1 {
        name: "message1";
        data: any;
    }
    interface Message2 {
        name: "message2";
        data: any;
    }
    type Message = Message1 | Message2;

这是从JSON模式自动生成的接口/类型,我很难更改它。

我想访问消息名称的类型,即'message1' | 'message2',例如Message.type

有人知道/如果我们能做到吗?

1 个答案:

答案 0 :(得分:4)

您可以执行以下操作:

type MessageName = Message['name']

const a: MessageName = 'message1' // OK
const b: MessageName = 'message12131' // error

有关联合类型check the documentation的更多详细信息。