繁体   English   中英

记录 function 参数作为联合类型不可分配给它的联合值

[英]Record function argument as union type is not assignable to its union values

目标是为映射器声明Record类型定义,以限制键和 function 值。 这些函数的 arguments 具有不同的行为,因此使用联合类型定义。

PushNotificationPayloadVideoCommentPushNotificationPayload联合类型的一部分,但 TS 编译器检测到它不能分配给它的联合

在此处输入图像描述

TypeScript 版本:4.3.2

单击此处查看 TS Playground 上的完整代码片段

使用unknown意味着分配的 function 应该能够处理任何参数类型,并且您正在使用只能处理特定类型的函数。

您可以使用自定义映射类型到 map 每个回调到适当的参数类型:

type Mapper = {
  [P in PushNotificationPayload as P['category']]?: (payload: P) => void
}

游乐场链接

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM