这是我参与「第四届青训营 」笔记创作活动的的第9天。本节课的主题是【TypeScript 入门】,授课老师为林皇。
本篇笔记分别对课程中所讲的几个要点进行一些解读,如若有误,欢迎大家在评论区交流,指出不当之处。
1. 为什么用TypeScript?
-
从TS发展历史看-前端主流框架(Angular React Vue)均已支持
-
JS VS TS
- JS:动态类型(执行阶段才做类型检验/匹配)/弱类型语言(类型自动转换)
- TS:静态类型(如Java,Py等,与动态区别在于编译发生是否在执行时)/弱类型语言
-
TS:
静态类型:
- 可读性增强:语法解析,自动生成TSDOC。ide增强
- 可维护性强,编译阶段发现错误 ⇒ 多人合作项目中获得更好的稳定性和开发效率
JS的超集:
- 包含于兼容所有JS特性,支持共存
- 支持渐进式引入改造与升级
-
编译器推荐
- VS Code
- 在线IDE-TS官网
2. 基本语法
数据类型
const q:string = 'string';
const w:number = 1;
const e:boolean = true;
对象类型
需要自定义,大写字母开头为类型
关键字:interface
函数类型
给参数和返回函数补充类型声明
函数重载
通过Interface关键字声明,形式比较简单可读
数组类型
补充类型
泛型
使用时才确认类型
泛型约束-<T extends string>
泛型参数默认类型 ``
类型别名&类型断言
字符串/数字 字面量
3. 高级类型
通过基础类型做高级类型定义
常见:
联合/交叉类型:存在许多重复元素
联合类型 A|B
交叉类型 A&B
类型保护与类型守卫
访问联合类型时,出于程序安全,只能访问联合类型中的交集部分
解决方法:类型守卫
高级类型
函数返回值类型
工程应用
TS过程应用-Web
- webpack
- node