微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在TypeScript中返回Union的隐式类型类型

如何解决在TypeScript中返回Union的隐式类型类型

我正在使用TypeScript上一门课程,下面的代码应该返回隐式类型的并集10和字符串文字“ test”:10 | “测试”。有人可以向我解释一下吗?运行它时,我得到的输出本身仅为10。还是我误会了?

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

解决方法

TypeScript被编译为JavaScript,并且JavaScript(代码在其中运行并为您提供console.log输出)没有类型的概念-它仅运行普通的JavaScript,即:

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

该函数在此处调用时返回10,因此记录10。

10 | 'test'联合类型只能在TypeScript中看到,例如,在智能感知中才能看到,而在代码被编译后不能在运行的JavaScript中看到。

enter image description here

如果要使用该联合,请记住该联合只是一个类型,因此它对于类型检查很有用,但在发出的JavaScript代码中将不存在。 / p>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。