HubPayload<T extends keyof AuthEventPayload> {
event: T,
data?: AuthEventPayload[T],
message?: string
}
interface EventHub {
listen<T>(channel: 'auth', payload: HubPayload<T>): () => void;
}
Не могу придумать как же мне указать T (вывести из HubPayload) в методе listen
Ссылка на пример:
https://www.typescriptlang.org/play?#code/C4TwDgpgBAggrsAFgUQG4QHbAAoEMQA2A9rgCZQC8UA3gFBRQDkAzgJYDmGAkhowFw16DJm0488hEqX5RmwAE6sM7IQF8ANEJYcMAVTAy4GUhABmSiKU2qA3LVpLgEeadwBjaAAk4AIwnEyAB4AFSgIAA8nY2YoAGsIECJTWAQUdCx-KQA+QQYIdOABYM0GUlxgXAB+AXgkNEwcfADSAG1ggF0SqABbCGZmXHYIatkFJRVVe0dnVw8oeqxvH1yoAlY5TBCsgAo3RFwMDAgCAUZcVMZ1KDAmqQElzKDgrIBKAW2XyhzUIlZSO0mQA
а почему в listen не указать, что T extends keyof AuthEventPayload?
Что бы не указывать дважды
Обсуждают сегодня