这是我参与「第四届青训营 」笔记创作活动的第9天
一、课前准备
二、什么是TypeScript
静态类型
- 可读性增强:基于语法解析TSDoc,ide增强
- 可维护性增强:在编译阶段暴露大部分错误
- 多人合作的大型项目中,获得更好的稳定性和开发效率
JS的超集
- 包含于兼容所有JS特性,支持共存
- 支持渐进式引入与升级
三、基本语法
- 基础数据类型:为了让程序有价值,我们需要能够处理最简单的数据单元,数字,字符串,结构体,布尔值等。TypeScript支持与JavaScript几乎相同的数据类型,此外还提供了实用的枚举类型方便我们使用。
- 布尔值:最基本的数据类型就是简单的true/false值,在JavaScript和TypeScript里叫做Boolean(其他语言中也一样)。
- 数字:和JavaScript一样,TypeScript里的所有数字都是浮点数。这些浮点数的类型是number。除了支持十进制和十六进制字面量,TypeScript还支持ECMAScript 2015中引入的二进制和八进制字面量。
- 字符串:JavaScript程序的另一项基本操作是处理网页或服务器端的文本数据。像其他语言里一样,我们使用string表示文本数据类型。和JavaScript一样,可以使用双引号或单引号表示字符串。
- 数组:TypeScript像JavaScript一样可以操作数组元素。有两种方式可以定义数组。第一种,可以在元素类型后面接上[],表示由此类型元素组成的一个数组,第二种方式是使用数组泛型,Array<元素类型>。
- 元组:元组类型允许表示一个已知元素数量和类型的数组,各元素的类型不必相同。当访问一个已知索引的元素,会得到正确的元素类型;当访问一个越界的元素,会使用联合类型替代。
- 枚举:enum类型是对JavaScript标准数据类型的一个补充。像C#等其他语言一样,使用枚举类型可以为一组数值赋予友好的名字。
- 对象类型
- 函数类型
- 函数重载
- 数组类型
- TypeScript补充类型
- TypeScript泛型
- 类型别名&类型断言
- 字符串/数字 字面量
四、高级类型
- 联合/交叉类型
- 为书籍列表编写类型->类型声明繁琐,存在较多重复
- 联合类型:IA|IB;联合类型表示一个值可以是几种类型之一
- 交叉类型:IA&IB;多种类型叠加到一起成为一种类型,它包含了所需的所有类型的特性
- 类型保护与类型守卫
- 高级类型
- 函数返回值类型
五、工程应用
TypeScript工程应用 - Web
webpack
- 配置webpack loader相关配置
- 配置tsconfig.js文件
- 运行webpack启动/打包
- loader处理ts文件时,会进行编译与类型检查
使用TSC编译
- 安装Node与npm
- 配置tsconfig.js文件
- 使用npm安装tsc
- 使用tsc运行编译得到js文件
六、课后小结
经过今天的课程学习,入门了TypeScript,了解到它与JavaScript有许多相似之处,利用这些相似之处,能更好的让我理解并运用,可以节省大量的时间。