目标是声明映射程序的Record类型定义,以限制键和函数值。这些函数的参数具有不同的行为,因此使用联合类型定义。
PushNotificationPayloadVideoComment是PushNotificationPayload联合类型的一部分,但是TS编译器检测到它不能分配给它的联合

TypeScript版本: 4.3.2
发布于 2022-01-21 10:18:33
使用unknown意味着分配的函数应该能够处理任何参数类型,而您使用的函数只能处理特定类型。
可以使用自定义映射类型将每个回调映射到适当的参数类型:
type Mapper = {
[P in PushNotificationPayload as P['category']]?: (payload: P) => void
}https://stackoverflow.com/questions/70799520
复制相似问题