这是我参与「第四届青训营 」笔记创作活动的的第3天
1、TypeScript的发展历史
2、TS与JS
TypeScript是JavaScript的超集,TS提供了所有JS的特性,并在其上层增加了TypeScript的类型系统,这个类型系统被设计为可选的,这就意味着,所有合法的JS代码都是合法的TS代码。
3、基本语法
类型
重载
TypeScript泛型
4、高级类型
5、TypeScript的基本概念
元组
- 这是一个和数组很类似的概念
- 数组种元素的个数和类型都是确定的
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 // 报错
接口
用来定义个对象的类型
如:
- 定义对象应该包含哪些属性
- 属性的类型是什么
函数类型
限定某个函数必须具有特性的参数和返回值
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、值空间与类型空间
- 转译后消失的符号->类型空间
- 作为类型注解、别名的符号->类型空间
- 类型断言后的符号->类型空间
- const、let、var后面的符号->值空间
- class、enum、namespace后的符号->值空间+类型空间