我正在尝试一个非常基本的(人为的)条件类型函数并遇到意外错误:
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 ×1