You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mapper函数返回类型不兼容问题:基于ElementName联合类型的工厂函数类型适配咨询

Mapper函数返回类型不兼容问题:基于ElementName联合类型的工厂函数类型适配咨询

各位好,我最近在TypeScript类型定义上碰到了个棘手的问题,想请大伙帮忙支支招:

我定义了一个联合类型ElementName,里面包含「基础字段」和「复杂字段」两类枚举值,先放两个基础字段的示例代码:

type ElementName = 
    | 'basicField1' 
    | 'basicField2'

接下来我要写一个工厂/映射器函数,它接收elementName作为参数,从对应的映射配置里返回对应数据。这里的核心矛盾点在于:

  • 针对基础字段,映射器里对应的处理函数签名是固定死的:(element: any) => string | null | undefined
  • 但如果是复杂类型字段,对应的处理函数签名就没有限制,可以是任何符合业务需求的类型

现在我给这个工厂函数定义类型的时候,总是触发返回类型不兼容的报错,完全摸不准该怎么设计类型,才能让TypeScript准确推断不同字段对应的返回类型,同时还能保证类型安全?

备注:内容来源于stack exchange,提问作者Maksym

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 16:19:34