TypeScript 的本质!🪐🪐🪐

1,207 阅读2分钟

🧐🪐我的GitHub主页

重要知识点:每节博客都会重复🙉🙉🙉

口诀🤨:四基两空一对象,还有五个falsy值。

七种数据类型

  • number string bool symbol
  • null undefined
  • object

五个 falsy 值

  • null undefined
  • 0 NaN
  • '' (空字符串)

一、简单介绍 jsts

  • javascript是一个弱类型语言,Typescript是Javascript的一个超集,最大区别就是Ts提供了类型系统。

  • TypeScript 只会进行静态检查,如果发现有错误,编译的时候就会报错。

二、typescript 的本质!

TS就是在JS上加了一些 :和类型 ,这样我们就可以通过类型去检查我们的JS有没有错误;

那这个检查的人呢?是一个叫做tsc的程序。

  • tsc检查成功✅

  1. 就会用自身把整个ts代码翻译成JS,而翻译的过程中,最重要的一步呢,就是把类型删掉,因为JS本身是不支持这种 :和类型的形式的,只要把这部分一删除,那不就只剩下JS代码了么;
  2. 然后JS再交给bable处理Bable处理不就行了嘛!当然它自身也是可以处理的,不一定非得用bable.
  • tsc检查失败🚫

就报一个错呗,但报错归报错,但还是会帮你翻译成JS,这是一种妥协。

比如给一个约定参数为String的函数传入了包函数字的数组,直接在编辑器中就会提示错误,编译时也会出错:

Argument of type 'number[]' is not assignable to parameter of type 'string' 

但是依然会生成js文件。

三、🏆总结

TypeScript 编译的时候即使报错了,还是会生成编译结果,我们仍然可以使用这个编译之后的文件,也可以设置不使用。

  • 我们在写js的时候直接运行在浏览器。
  • 而写ts需要按照约定的类型系统去编写代码,然后编译成浏览器识别的js再去执行。
  • 正是因为TS的类型系统,多了编译为Js代码的步骤,所以依赖于类型系统,为程序员提前规避了很多错误,而不是等到执行代码的时候才发现错误。

希望大家能够认清ts是一个非常简单的东西。

由于本人水平有限,如有描述不准确的地方请给我留言,欢迎交流~