首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >作为联合类型的记录函数参数不能分配给它的联合值。

问作为联合类型的记录函数参数不能分配给它的联合值。
EN

Stack Overflow用户
提问于 2022-01-21 10:03:08
回答 1查看 31关注 0票数 2

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

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

​

​

TypeScript版本: 4.3.2

点击这里获取TS游乐场上的完整代码片段

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-21 10:18:33

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

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

代码语言:javascript
复制
type Mapper = {
  [P in PushNotificationPayload as P['category']]?: (payload: P) => void
}

操场连接

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70799520

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档