相关疑难解决方法(0)

使用条件返回类型实现泛型函数

我正在尝试一个非常基本的(人为的)条件类型函数并遇到意外错误:

function test<
  T
>(
  maybeNumber: T
): T extends number ? number : string {
  if (typeof maybeNumber === 'number') {
    return maybeNumber // Type 'T & number' is not assignable to type 'T extends number ? number : string'.
  }

  return 'Not a number' // Type '"Not a number"' is not assignable to type 'T extends number ? number : string'.
}
Run Code Online (Sandbox Code Playgroud)

我认为这是条件类型的非常简单的用法,所以不确定发生了什么。有任何想法吗?

澄清一下,我并不是真的想实现这个特定的功能。我只是在试验条件类型,并想更好地理解为什么这实际上不起作用。

typescript

5
推荐指数
1
解决办法
283
查看次数

标签 统计

typescript ×1