TypeScript入门 | 青训营笔记

64 阅读3分钟

这是我参与「第四届青训营 」笔记创作活动的第9天

一、课前准备

学习JavaScript基础语法

二、什么是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

  1. 配置webpack loader相关配置
  2. 配置tsconfig.js文件
  3. 运行webpack启动/打包
  4. loader处理ts文件时,会进行编译与类型检查

使用TSC编译

  1. 安装Node与npm
  2. 配置tsconfig.js文件
  3. 使用npm安装tsc
  4. 使用tsc运行编译得到js文件

六、课后小结

经过今天的课程学习,入门了TypeScript,了解到它与JavaScript有许多相似之处,利用这些相似之处,能更好的让我理解并运用,可以节省大量的时间。