这是我参与「第五届青训营 」笔记创作活动的第4天
什么是TypeScript?
TypeScript是微软开发的一个开源的编程语言,通过在JavaScript的基础上添加静态类型定义构建而成。TypeScript通过TypeScript编译器或Babel转译为JavaScript代码,可运行在任何浏览器,任何操作系统。
JavaScript与TypeScript对比
JS:动态类型(在执行的时候检查错误),弱类型语言
TS:静态类型(在编译的时候检查错误),弱类型语言
弱类型语言,比如字符型和数字型的1相加时可以得到2,会进行隐式类型转换。
TypeScript的优势
- 可读性增强:基于语法解析TSDoc,ide增强
- 可维护性增强:在编译阶段暴露大部分错误
- 多人合作的大型项目中,获得更好的稳定性和开发效率
- 包含于兼容所有JS特性,支持共存
- 支持渐进式引入与升级
编译器推荐:
基本语法:
1. 基础数据类型
2. 对象类型
3. 函数类型
4. 函数重载
5. 数组类型
补充类型
类型别名&类型断言
字符串/数字 字面量
高级类型
联合/交叉类型
为书籍列表编写类型时,类型生命繁琐,存在较多重复
- 联合类型: IA| IB;联合类型表示一个值可以是几种类型之一
- 交叉类型: IA & IB;多种类型叠加到一起成为一种类型,它包含了所需的所有类型的特性
类型保护与类型守卫
函数的返回值类型
第一种:
实现函数delayCall的类型声明,delayCall接受一个函数作为入参,其实现延迟1s运行函数其返回promise,结果为入参函数的返回结果
第二种:
关键字【extends】跟随泛型出现时,表示类型推断,其表达可类比三元表达式如T===判断类型?类型A:类型B
关键字【infer】出现在类型推荐中,表示定义类型变量,可以用于指代类型
如该场景下,将函数的返回值类型作为变量,使用新泛型R表示,使用在类型推荐命中的结果中
工程应用-web
webpack
- 配置webapack loader相关配置
- 运行webpack启动/打包
- 配置tsconfg.js文件
- loader处理ts文件时,会进行编译与类型检查
相关loder:
工程应用-Node
- 安装Node与npm
- 使用npm安装tsc
- 配置tsconfg.js文件
- 使用tsc运行编译得到js文件