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

TypeScript中显式指定部分泛型参数后,返回条件类型不符合参数值预期的问题求助

TypeScript中显式指定部分泛型参数后,返回条件类型不符合参数值预期的问题求助

大家好,我遇到了一个TypeScript泛型相关的问题,想请教一下各位:我希望函数的返回类型是基于参数值的条件类型,但当显式指定部分泛型参数后,返回类型的推断结果和预期不符。

以下是最小复现代码:

type R<K extends string> = K extends "test"? "is test!" : "is not test...";

function D<T, K extends string = string>(v: K): R<K> {
  // Type T会用于其他逻辑,这里的类型转换只是示例用
  return v as unknown as R<K>;
}

const x = D("test"); // x的类型是"is test!",符合预期
const y = D<string>("test"); // y的类型变成了"is not test...",不符合预期

我困惑的点在于:明明传入的参数是"test",但显式指定T为string后,返回类型就不再根据参数值正确推断了,有没有办法解决这个问题,让我既能显式指定部分泛型参数,又能让返回类型根据实际传入的参数值正确生成呢?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.15 15:44:33