Typescript中的条件输入不是很直观。下面的代码在Typescript操场上返回了一个错误。有人能解释一下为什么吗,因为这看起来像是一个完美的条件输入简单示例。
function process<T extends string | null>(text: T): T extends string ? string : null {
return text;
}
//Type 'T' is not assignable to type 'T extends string ? string : null'.
//Type 'string | null' is not assignable to type 'T extends string ? string : null'.
//Type 'null' is not assignable to type 'T extends string ? string : null'.(2322)
1条答案
按热度按时间yjghlzjz1#
Typescript无法缩小具有条件类型的函数的返回类型,该函数具有定义为联合的参数。
你能做的最好的事情就是
return text as any;
,继续你的生活。这里的替代方法是使用重载来完成你想要的。