TypeScript 和 JavaScript 的区别?

510 阅读4分钟

对于一个React新手小白来说这typeScript和JavaScript的区别在哪里?而为什么大公司的需求都是typeScript语言?

TypeScript 和 JavaScript是目前开发项目中较为流行的两种语言,之前在面试过程中曾经被问过,并没有回答上来,很遗憾,现在整理一下,希望对大家可以有多帮助。

之前的我觉得typeScript除了声明静态类型外,并没有其他的一些不同,和javaScript写起来语法也是差不多的,但是面试结果告诉我不是这么简单的,面试官的态度说明了一切,两者之间的差距并不是这么简单的。

那么首先,我先说一下静态类型有什么好处吧

  1. 杜绝手误导致的变量名写错。
  2. 自动完成。
  3. 重构支持。
  4. 类型可以一定程度上充当文档
  • 我感觉对我这个脑子有点笨的人来说,这么几点的优点就足够我用和我记下了
  • 自动完成和重构的支持,让我觉得自己又可以了那种感觉
  • 静态类型解放脑容量,自动完成让我不需要记忆哪个变量里有哪些属性,也不需要记完整的变量名。
  • 函数上的类型约束外加尽量主动写纯函数让我在写函数实现的时候不需要关注函数之外的任何东西,注意力聚焦在当前函数

说了JavaScript的好处,那么为什么还会出现typeScript的语法呢,肯定是因为JavaScript静态类型语法会存在一些不可避免的不足之处,我们学编程设计的,要永远懂得一个道理,在语法和变量声明中,每一种语法和每一种特殊的变量声明,都是有他存在的意义,他的存在证明了他在代码中一定会用得到的,虽然我们现在并没有用到过或者是用的少,一定是有一些问题需要用他来解决的。

静态类型的不足之处

  1. 类型标注麻烦。
  2. 现阶段大部分静态类型语言的类型系统还不够强。
  3. eval 和 new Function() 这种骚操作类型系统管不到。
  4. 需要编译,类型检查会增加编译时长,语法和类型系统复杂的话时间特别特别长,比如 scala。

标注麻烦的问题无法根绝,但是类型推导能解决大部分的类型标注问题。

可能类型系统不够强的问题,会随着时间的推移慢慢解决,慢慢变好。

编译的问题ts就算类型检查不通过也会跑起来,所以对 ts 来说类型检查可以从编译中提取出来,作为独立的编译和类型检查两部分。

先编译输出,再做类型检查,编译的部分相当于 babel 这种工具做的事。

类型检查也可以单独运行。

所以说,typeScript存在的意义或者说相对于JavaScript存在的显著优势在哪里

  • 静态输入 静态类型化是一种功能,可以在开发人员编写脚本时检测错误。查找并修复错误是当今开发团队的迫切需求。有了这项功能,就会允许开发人员编写更健壮的代码并对其进行维护,以便使得代码质量更好、更清晰。

  • 大型的开发项目 有时为了改进开发项目,需要对代码库进行小的增量更改。这些小小的变化可能会产生严重的、意想不到的后果,因此有必要撤销这些变化。使用TypeScript工具来进行重构更变的容易、快捷。

  • 更好的协作 当发开大型项目时,会有许多开发人员,此时乱码和错误的机也会增加。类型安全是一种在编码期间检测错误的功能,而不是在编译项目时检测错误。这为开发团队创建了一个更高效的编码和调试过程。

  • 更强的生产力 干净的 ECMAScript 6 代码,自动完成和动态输入等因素有助于提高开发人员的工作效率。这些功能也有助于编译器创建优化的代码。

那么在实际应用中,应该如何去抉择这两种语法呢

TypeScript 正在成为开发大型编码项目的有力工具。因为其面向对象编程语言的结构保持了代码的清洁、一致和简单的调试。因此在应对大型开发项目时,使用 TypeScript 更加合适。如果有一个相对较小的编码项目,似乎没有必要使用 TypeScript,只需使用灵活的 JavaScript 即可。

极速更新中.....