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

递归条件类型下TypeScript函数参数类型意外坍缩为any的问题

TypeScript递归条件类型:元组Schema中共享约束名required导致参数类型坍缩为any

问题背景

这是TypeScript项目#60221的跟进问题,此前Joe Calzaretta (@jcalz) 已解决首个递归条件类型问题,但当前遇到新场景:

  • 使用递归条件类型定义校验Schema时,当StringConstraints与ObjectConstraints共享required这个约束名称,函数参数context的类型会意外坍缩为any
  • 当使用length这类专属约束,或给required传入非函数值时,类型推断完全正常

测试案例结论

简化测试案例验证了以下规律:

  • 用元组定义StringSchema、NumberSchema时,传入required函数参数会触发类型推断为any的错误
  • 改用对象式定义Schema时,类型推断恢复正常,可确定问题与元组的使用直接相关

求助需求

  1. 寻求能正确得到ValidationContext<...>预期类型推断结果的解决方法
  2. 询问是否应该在GitHub提交该Bug,若确认是Bug,我会尝试提交PR

内容的提问来源于stack exchange,提问作者Franck Wolff

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 05:05:55