我想缩小基于属性的类型,但不知道如何做到这一点。
举个小例子让它更明显:
type Message1 = { type: 'message1', payload: string }
type Message2 = { type: 'message2', payload: boolean }
type AnyMessage = Message1 | Message2;
type AnyMessageType = AnyMessage['type']
const listener = (type: AnyMessageType, callback: (payload: InferMessagePayloadByType) => any) => {
// blabla
}
正如您在示例中所看到的,我想知道如何通过message.type(string)推断内部有效负载。
1条答案
按热度按时间jutyujz01#
我的错,刚刚意识到我可以使用交集从联合类型中提取。