我写了下面的代码,但是返回值发生了错误
function test_fn<T> (arg: T): T extends string | number ? boolean : number
{
if(typeof arg === "string" || typeof arg === "number")
{
return true
}
return 1
}
错误消息为:TS2322:类型“true”不可分配给类型“T extends string| number?boolean:数字'。
我觉得我的写作应该得到正确的类型推断,但它没有。我能做些什么来消除这种类型错误?
1条答案
按热度按时间nzk0hqpo1#
请检查下面的代码片段,它解决了上述问题。
我的实现只是忽略了T的类型是否是数字。也许你可以把数字转换成一个字符串,并在需要时使用它。