当前位置:   article > 正文

TypeScript 与 JavaScript 有何关系

TypeScript 与 JavaScript 有何关系

        TypeScript是类型化的JavaScript超集,是带有编译时类型检查器的JavaScript运行时。

        我从4个方面来阐述这两者的关系:

1,语法

        TypeScript 是一种语言,是 JavaScript 的超集: 因此 JS 语法是合法的 TS。 语法是指我们编写文本以形成程序的方式。 例如,此代码存在语法错误,因为它缺少 )

  1. let a = (4
  2. ')' expected.

    由于其语法,TypeScript 不会将任何 JavaScript 代码视为错误。 这意味着你可以将任何有效的 JavaScript 代码放入 TypeScript 文件中,而不必担心它的具体编写方式。

2,类型。

        TypeScript 是一个类型超集,这意味着它添加了关于如何使用不同类型的值的规则。举个例子,这是你可以在浏览器中运行的 JavaScript 代码,它将记录一个值:

console.log(4 / []);

        这个语法上合法的程序记录了 Infinity。 但是,TypeScript 将数字除以数组视为无意义的操作,并且会触发错误:

  1. console.log(4 / []);
  2. The right-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type.

        有可能你真的打算将一个数字除以一个数组,也许只是为了看看会发生什么,但大多数时候,这是一个编程错误。 TypeScript 的类型检查器旨在允许正确的程序通过,同时仍然捕获尽可能多的常见错误。 

        如果将一些代码从 JavaScript 文件移动到 TypeScript 文件,你可能会看到类型错误,具体取决于代码的编写方式。 这些可能是代码的合理问题,或者 TypeScript 过于保守。 在本指南中,我们将演示如何添加各种 TypeScript 语法来消除此类错误。

3,运行时行为。        

        TypeScript 也是一种保留了 JavaScript 运行时行为的编程语言。 例如,在 JavaScript 中除以零会产生 Infinity 而不是抛出运行时异常。 作为原则,TypeScript 从不 改变 JavaScript 代码的运行时行为。

        这意味着,如果你将代码从 JavaScript 移至 TypeScript,则 保证 以相同的方式运行,即使 TypeScript 认为代码存在类型错误。

        保持与 JavaScript 相同的运行时行为是 TypeScript 的基本保证,因为这意味着你可以轻松地在两种语言之间转换,而不必担心可能导致程序停止运行的细微差异。

4,擦除的类型。

        粗略地说,一旦 TypeScript 的编译器检查完你的代码,它就会擦除类型以生成结果的 “编译” 代码。 这意味着一旦你的代码被编译,生成的普通 JS 代码就没有类型信息。

        这也意味着 TypeScript 永远不会根据它推断的类型更改程序的行为。 最重要的是,虽然你可能会在编译期间看到类型错误,但类型系统本身与程序运行时的工作方式无关。

        最后,TypeScript 不提供任何额外的运行时库。 你的程序将使用与 JavaScript 程序相同的标准库(或外部库),因此无需学习额外的 TypeScript 特定框架。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/317673
推荐阅读
相关标签
  

闽ICP备14008679号