本文已参与「新人创作礼」活动,一起开启掘金创作之路。
TypeScript在前端的使用是越来越普遍了,之前犹豫了好久到底要不要学,但是目前看来想要在职业方向走的更远,学习TypeScript是不可避免的,不过话说回来,TypeScript的一些定义真是让人头疼,许多专业名称就算看了定义也云里雾里,让人难以理解,类似public、private、抽象类这些看起来都是java的东西呀。😵算了,不懂得地方就先记录下来,试用的多了慢慢就理解了💪🏻。
类型
| 数据类型 | 实例 |
|---|---|
| 布尔值 | let isDone: boolean = false |
| 数字 | let decLiteral: number = 6 |
| 字符串 | let name: string = bob${name} |
| 数组 | let list: number[] = [1,2,3] let list: Array<number> = [1, 2, 3] |
| 元组 Tuple | let x: [string, number]; x = ['hello' , 10] |
| 枚举 | enum Color {Red = 1, Green, Blue} let c: Color = Color.Green let c: Color = Color[2] |
| Any<不确定类型> | let notSure: any = 4; notSure = "bob"; notSure = false; let list:any[] = [1, true, "free"] list[1] = 100 |
| Void | 表示没有任何类型 |
| Null/Underfined | TypeScript里,undefined和null两者各自有自己的类型分别叫做undefined和null |
| Never | never类型表示的是那些永不存在的值的类型 |
| Object | object表示非原始类型,也就是除number,string,boolean,symbol,null或undefined之外的类型 |
类型断言
*** ps: 在TypeScript里使用JSX时,只有 as语法断言是被允许的 ***
TypeScript具有ReadonlyArray<T>类型,它与Array<T>相似,只是把所有可变方法去掉了,可以确保数组创建后再也不能被修改,类型断言可以重写被ReadonlyArray<T>类型声明的数据
let a: number[] = [1, 2, 3, 4];
let ro: ReadonlyArray<number> = a;
ro[0] = 12; // error!
ro.push(5); // error!
ro.length = 100; // error!
a = ro; // error! // 把整个ReadonlyArray赋值到一个普通数组也是不可以的
a = ro as number[]; // 但可以用类型断言重写
- "尖括号"语法
let someValue: any = "this is a string";
let strLength: number = (<string>someValue).length;
- as语法
let someValue: any = "this is a string"
let strLength: number = (someValue as string).length