前言
对于 TypeScript,你首先要了解的是,TypeScript 可以在 JavaScript 的基础上对变量的数据类型加以限制。TypeScript 中最基本的数据类型包括布尔、数字、字符串、null、undefined,这些都很好理解,也是JavaScript中的数据类型。
基本数据类型
我们定义几个有数据类型的变量。其中第三个是一个数组,里面的每一项都是string类型
let username: string = 'xiaosong'
let age: number = 18
let hobby: string[] = ['rap', 'football']
以上代码中我们显示的在变量名后面加上了数据类型当我们试图给变量赋值其他数据类型的变量的时候会提示类型错误。
username = 123 // 提示:不能将类型“number”分配给类型“string”
hobby[0] = 123 // 提示:不能将类型“number”分配给类型“string”
当你不确定某个变量是什么类型时,你可以使用 any 作为这个变量的类型。你可以用 any 标记。当你把变量的类型标记为 any 后,这个变量的使用就和 JavaScript 没啥区别了,可以对变量赋任何类型的值。错误只会在浏览器里运行的时候才会提示。
枚举类型
然后我们可以使用 enum 去定义枚举类型,这样可以把类型限制在指定的场景之内。当我们不为枚举类型里的项赋值时,默认是从0开始依次赋值。比如说我们把是否删除现在0和1,0代表未删除1代表删除了
enum Status {
not,
have,
}
console.log(Status.have) // 1 默认是1
console.log(Status[1]) // have
也可以赋上值
enum Status {
not = 1,
have = 2,
}
console.log(Status.have) // 2
console.log(Status[2]) // have
联合类型
然后我们可以通过学到的这些基础类型,通过组合的方式组合出新的类型。最常见的组合方式就是使用 | 实现类型联合。下面的代码中我们定义 course 变量的类型为字符串或者数字,赋值为这两个类型都不会报错,还可以用来限制变量只能赋值为几个值的一个,score 的取值只能是代码中三个值之一。下面代码中的type后面会讲到,大家也可以提前自行搜索资料学习。
let course1 : string|number = 'TS'
course1 = 1
course1 = true // 报错
type courseScore = 0 | 1 | 2
let score1 :courseScore = 0
let score2 :courseScore = '一般' // 报错