在TypeScript中返回联合的隐式类型

在TypeScript中返回联合的隐式类型,typescript,union-types,Typescript,Union Types,我正在学习TypeScript课程,下面的代码应该返回10的并集的隐式类型和字符串文字“test”:10 |“test”。有人能给我解释一下怎么做吗?当我运行它时,我得到的输出本身只有10。还是我误解了 function withImplicitReturnType(b: boolean) { if (b) { return 10; } return "test"; } consol

我正在学习TypeScript课程,下面的代码应该返回10的并集的隐式类型和字符串文字“test”:10 |“test”。有人能给我解释一下怎么做吗?当我运行它时,我得到的输出本身只有10。还是我误解了

   function withImplicitReturnType(b: boolean) {
        if (b) {
            return 10;
        }
        return "test";
    }
    console.log(withImplicitReturnType(true));

TypeScript被编译成JavaScript,JavaScript(代码在其中运行并提供
console.log
output)没有类型的概念-它只运行普通JavaScript,即:

函数的隐式返回类型(b){
如果(b){
返回10;
}
返回“测试”;
}

log(withImplicitReturnType(true))TypeScript被编译成JavaScript,JavaScript(代码在其中运行并提供
console.log
输出)没有类型概念-它只运行普通JavaScript,即:

函数的隐式返回类型(b){
如果(b){
返回10;
}
返回“测试”;
}

log(withImplicitReturnType(true))谢谢@CertainPerformance。我猜这个例子是错误的,因为讲师说这个特定的例子应该返回10的并集的隐式类型和字符串文字“test”:10 |“test”,因为return 10和return“test”在两个不同的位置返回两种不同的类型。函数的返回类型就是并集,但是,如果您向它传递一个类型缩小的布尔值(即,肯定是true或false,而不是运行时之前未知的值),TypeScript将能够确定它将采用哪条路径,以及返回值实际是什么
withImplicitReturnType(true)
返回类型为
10
的表达式,
withImplicitReturnType(Math.random()<0.5)
返回类型为
10 |“test”
的表达式。谢谢@CertainPerformance。我猜这个例子是错误的,因为讲师说这个特定的例子应该返回10的并集的隐式类型和字符串文字“test”:10 |“test”,因为return 10和return“test”在两个不同的位置返回两种不同的类型。函数的返回类型就是并集,但是,如果您向它传递一个类型缩小的布尔值(即,肯定是true或false,而不是运行时之前未知的值),TypeScript将能够确定它将采用哪条路径,以及返回值实际是什么
withImplicitReturnType(true)
返回类型为
10
的表达式,
withImplicitReturnType(Math.random()<0.5)
返回类型为
10 |“test”
的表达式。