TypeScript入门|青训营笔记

70 阅读1分钟

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

1、TypeScript的发展历史

‌‍‬⁠⁡⁢⁣⁤TypeScript 入门 .pptx - 飞书文档 -联想浏览器 2022_8_6 21_25_10.png

2、TS与JS

‌‍‬⁠⁡⁢⁣⁤TypeScript 入门 .pptx - 飞书文档 -联想浏览器 2022_8_6 21_30_55.png

‌‍‬⁠⁡⁢⁣⁤TypeScript 入门 .pptx - 飞书文档 -联想浏览器 2022_8_6 21_25_10.png TypeScript是JavaScript的超集,TS提供了所有JS的特性,并在其上层增加了TypeScript的类型系统,这个类型系统被设计为可选的,这就意味着,所有合法的JS代码都是合法的TS代码。

3、基本语法

类型

‌‍‬⁠⁡⁢⁣⁤TypeScript 入门 .pptx - 飞书文档 -联想浏览器 2022_8_6 21_40_50.png

‌‍‬⁠⁡⁢⁣⁤TypeScript 入门 .pptx - 飞书文档 -联想浏览器 2022_8_6 21_41_01.png

重载

‌‍‬⁠⁡⁢⁣⁤TypeScript 入门 .pptx - 飞书文档 -联想浏览器 2022_8_6 21_53_55.png

‌‍‬⁠⁡⁢⁣⁤TypeScript 入门 .pptx - 飞书文档 -联想浏览器 2022_8_6 21_52_12.png

TypeScript泛型

‌‍‬⁠⁡⁢⁣⁤TypeScript 入门 .pptx - 飞书文档 -联想浏览器 2022_8_6 22_13_50.png

‌‍‬⁠⁡⁢⁣⁤TypeScript 入门 .pptx - 飞书文档 -联想浏览器 2022_8_6 22_13_56.png

4、高级类型

‌‍‬⁠⁡⁢⁣⁤TypeScript 入门 .pptx - 飞书文档 -联想浏览器 2022_8_6 23_03_46.png

‌‍‬⁠⁡⁢⁣⁤TypeScript 入门 .pptx - 飞书文档 -联想浏览器 2022_8_6 23_03_40.png

5、TypeScript的基本概念

元组

  1. 这是一个和数组很类似的概念
  2. 数组种元素的个数和类型都是确定的
let point: [number, number, number?]
point = [1, 2, 3]
point = [1, 2]
console.log(point);

联合类型

let color: number | string
color = "red"
color = 0xff0000
// color = true // 报错

let gender: "male" | "female"
let dice: 1 | 2 | 3 | 4 | 5 | 6
gender = "male"
// gender="boy" // 报错

dice = 3
// dice=123 // 报错

接口

用来定义个对象的类型
如:

  1. 定义对象应该包含哪些属性
  2. 属性的类型是什么

函数类型

限定某个函数必须具有特性的参数和返回值

function getUserName(callback: (data: string) => void) {

}
getUserName((data) => {
  alert(data)
})
getUserName((data) => {
  // alert(data * 2)   // 类型报错
})

类型别名

使用type关键字给复杂的类型取一个别名

type UserID = number | string
function getUserInfo(userId: UserID) {

}

6、值空间与类型空间

  1. 转译后消失的符号->类型空间
  2. 作为类型注解、别名的符号->类型空间
  3. 类型断言后的符号->类型空间
  4. const、let、var后面的符号->值空间
  5. class、enum、namespace后的符号->值空间+类型空间