|
| 1 | +# 基础类型 |
| 2 | + |
| 3 | +## 布尔类型 |
| 4 | + |
| 5 | +```ts |
| 6 | +// 布尔类型 |
| 7 | +const isSuccess: boolean = true |
| 8 | +console.log(isSuccess) |
| 9 | +``` |
| 10 | + |
| 11 | +## 数字 |
| 12 | + |
| 13 | +和`JavaScript`一样,`TypeScript`里的所有数字都是浮点数。 这些浮点数的类型是 number |
| 14 | + |
| 15 | +```ts |
| 16 | +// number类型 |
| 17 | +const a: number = 123 |
| 18 | +console.log(a) |
| 19 | +``` |
| 20 | + |
| 21 | +## 字符串 |
| 22 | + |
| 23 | +```ts |
| 24 | +// string类型 |
| 25 | +const name = "chufan" |
| 26 | +console.log(name) |
| 27 | + |
| 28 | +// 模板字符串 |
| 29 | +const sister: string = `hello,${name}` |
| 30 | +console.log(sister) |
| 31 | +``` |
| 32 | + |
| 33 | +## 数组 |
| 34 | + |
| 35 | +`TypeScript`像`JavaScript`一样可以操作数组元素。 有两种方式可以定义数组: |
| 36 | + |
| 37 | +- 可以在元素类型后面接上 `[]`,表示由此类型元素组成的一个数组 |
| 38 | +- 使用数组泛型,`Array<元素类型>` |
| 39 | + |
| 40 | +```ts |
| 41 | +// 数组 |
| 42 | +const list: number[] = [1, 2, 3, 4] |
| 43 | +const arrayList: Array<number> = [1, 2, 3, 4] |
| 44 | +console.log(list, arrayList) |
| 45 | +``` |
| 46 | + |
| 47 | +## 元组 |
| 48 | + |
| 49 | +元组类型允许表示一个已知元素数量和类型的数组,各元素的类型不必相同 |
| 50 | + |
| 51 | +```ts |
| 52 | +const tupleResult: [string, number] = ['chufan', 23] |
| 53 | +console.log(tupleResult) |
| 54 | +``` |
| 55 | + |
| 56 | +## 枚举 |
| 57 | + |
| 58 | +```ts |
| 59 | +// 枚举颜色 |
| 60 | +enum COLOR { |
| 61 | + RED = 0, |
| 62 | + GREEN = 1, |
| 63 | + BLUE = 3 |
| 64 | +} |
| 65 | + |
| 66 | +// 枚举人名 |
| 67 | +enum NAME { |
| 68 | + zhangSan = 'zhangSan', |
| 69 | + liSi = 'liSi' |
| 70 | +} |
| 71 | + |
| 72 | +console.log(COLOR.BLUE, NAME.zhangSan) |
| 73 | +``` |
| 74 | + |
| 75 | +## Void和Any |
| 76 | + |
| 77 | +某种程度上来说,void类型像是与any类型相反。 |
| 78 | + |
| 79 | +- void表示没有任何类型。 当一个函数没有返回值时,你通常会见到其返回值类型是 void |
| 80 | +- any表示任意类型,一般写any就直接绕过ts编译等同于js代码 |
| 81 | + |
| 82 | +```ts |
| 83 | +// 函数返回值为空 |
| 84 | +function testVoid(a: number): void { |
| 85 | + console.log(a) |
| 86 | +} |
| 87 | + |
| 88 | +// 声明一个void类型的变量没有什么大用,你只能为它赋予undefined和null |
| 89 | +const aVoid: void = null |
| 90 | +const bVoid: void = undefined |
| 91 | +console.log(aVoid, bVoid) |
| 92 | +``` |
| 93 | + |
| 94 | +## Null 和 Undefined |
| 95 | + |
| 96 | +TypeScript里,undefined和null两者各自有自己的类型分别叫做undefined和null。 和 void相似,它们的本身的类型用处不是很大: |
| 97 | + |
| 98 | +```ts |
| 99 | +let u: undefined = undefined; |
| 100 | +let n: null = null; |
| 101 | +``` |
| 102 | + |
| 103 | +默认情况下null和undefined是所有类型的子类型。 就是说你可以把 null和undefined赋值给number类型的变量。 |
| 104 | +然而,当指定了--strictNullChecks标记,null和undefined只能赋值给void和它们各自。 这能避免 很多常见的问题 |
0 commit comments