课程名称
课程章节
第1章 课程导学
- 1-1 都2022了,还不抓紧学TypeScript?
第2章 TypeScript 基础语法入门
- 2-1 TypeScript 究竟是什么?
课程讲师
课程内容
ts 2012 年 由微软发布
TS是js的超集,其中可以使用js之外的扩展语法,同时借助ts对面向对象和静态类型的良好支持,可以编写出更健壮,更好维护的大型项目。
大纲
-
TS基础语法
-
爬虫功能开发、
-
node+ts’
-
ts语法进阶
-
项目接口开发
-
ts高级语法
-
项目代码重构
-
项目前端开发
-
总结
知识点
- 静态类型
- 类型注解
- 类型推断
- 泛型
- 类型定义文件
- 模块化
- 打包编译
- 装饰器
- Metadata
- 设计模式
- 实战问题
课程收获
了解到了ts的产生,包括js产生过渡到ts的整个过程 =>
当年原始的浏览器出来的时候,光靠html描述性语音做静态资源的展现,可能不太够用,这个时候js的作者就在很短的时间内开发了这样一款脚本语言。通过脚本语音可以在原始的浏览器上做一些弹框等基础的交互。那个时候javaScript只是解决很简单的问题,所以它的语法设计上留下了很多缺陷和不完善的地方。随着技术的发展,现在的浏览器变得越来越强大,使用JavaScript的场景也和以前不太一样了,以前仅仅是做一些基础的页面交互,但是今天使用js可以开发非常复杂的webApplication,比如现在看到的非常复杂的系统,包括在浏览器上开发web Excel、web Word,webGl等。同时js慢慢从web端还扩展到了其他的领域,比如端上的应用Electron、nodejs开发一些server层的东西。
随着技术的发展,我们今天再去看JavaScript,它面对应用的场景对比过去的应用场景,已经发生了质的飞跃,现在的场景变得越来越复杂。如果是仅仅面对的是一些简单的场景,比如JavaScript的底层设计稍微有些缺陷是可以理解的,但是它现在的面对的业务场景非常复杂,如果这个时候底层仍扰有一些不完美的地方的话,就很容易造成上层的应用出现各种各样的问题,这就是ts产生的背景。
ts => 把js中语法不完美的地方,进行一些提示,然后去解决js历史遗留的问题。我们知道ts,它自己定义自己,它是js的超集,它包含js里的所有语法,但是在这个基础上它又增加了很多其他的东西。其实它增加东西,主要是类型。
打印结果是hello,因为在js当中,当字符串在和数字进行比对的时候,js底层会对字符串和数字进行类型转换,然后再去比对,这是一个隐性的类型转换,所以可能初学者看这段代码会感觉很诡异。
在浏览器中执行,传100也会正常输出hello,实际js会把其拆成两部分,首先比较x是否大于1,x是100这就成了true,true再和3比较,那肯定小于3,则整个表达式就成立了。造成这个原因,也是js底层再做比较的时候,也会有一些隐式类型的转换。这个是我们很难预见的,因此很容易产生一些问题,其实这个就是程序的一些bug,这是js语法明显的设计缺陷。
firstName和lastName拼错,js也不会报错或者有警告,因为它是一个弱类型的语言,设置随便写一个获取object.sdfasdf,这也不会报错,因为它没有类型的检验机制。因此很容易因为一个拼写造成js代码的bug,调试的时候又非常难以找到这个问题,甚至随便输出一个变量c,都不存在也不会报错。因此写一些错误的命名或者错误的变量,都不会报错,但是这样程序执行的结果都会有异常和不对。如果系统非常庞大和复杂,非常容易出现这种问题,而且不好解决,错误排查很困难。ts在这基础上补全了js类型上的缺失。
放在ts中会报错,这里会检测类型。 一个带有类型检测的语言,都不会允许在没有定义一个变量的时候,直接使用这个变量,ts也一样。