@@ -14,7 +14,7 @@ TypeScript 数组有一个根本特征:所有成员的类型必须相同,但
14
14
let arr: number [] = [1 , 2 , 3 ];
15
15
```
16
16
17
- 上面示例中,数组` arr ` 的类型是` number[] ` ,其中` number ` 表示成员类型是 ` number ` 。
17
+ 上面示例中,数组` arr ` 的类型是` number[] ` ,其中` number ` 表示数组成员类型是 ` number ` 。
18
18
19
19
如果数组成员的类型比较复杂,可以写在圆括号里面。
20
20
@@ -26,7 +26,7 @@ let arr:(number|string)[];
26
26
27
27
这个例子里面的圆括号是必须的,否则因为竖杠(` | ` )的优先级低于` [] ` ,TypeScript 会把` number|string[] ` 理解成` number ` 和` string[] ` 的联合类型。
28
28
29
- 如果数组成员可以是任意类型,则写成 ` any[] ` 。当然,这种写法是应该避免的。
29
+ 如果数组成员可以是任意类型,写成 ` any[] ` 。当然,这种写法是应该避免的。
30
30
31
31
``` typescript
32
32
let arr: any [];
@@ -73,7 +73,7 @@ arr // [1, 2]
73
73
74
74
上面示例中,数组增加成员或减少成员,都是可以的。
75
75
76
- 正是由于成员数量可以动态变化,所以 TypeScript 不会对数组边界进行检查,如果越界访问数组并不会报错 。
76
+ 正是由于成员数量可以动态变化,所以 TypeScript 不会对数组边界进行检查,越界访问数组并不会报错 。
77
77
78
78
``` typescript
79
79
let arr: number [] = [1 , 2 , 3 ];
@@ -98,13 +98,11 @@ type Names = string[];
98
98
type Name = Names [number ]; // string
99
99
```
100
100
101
- 上面示例中,` Names[number] ` 表示元组 ` Names ` 所有数值索引的成员类型,所以返回` string ` 。
101
+ 上面示例中,` Names[number] ` 表示数组 ` Names ` 所有数值索引的成员类型,所以返回` string ` 。
102
102
103
103
## 数组的类型推断
104
104
105
- 如果数组变量没有声明类型,TypeScript 就会推断数组成员的类型。
106
-
107
- 这时,推断行为会因为值的不同,而有所不同。
105
+ 如果数组变量没有声明类型,TypeScript 就会推断数组成员的类型。这时,推断行为会因为值的不同,而有所不同。
108
106
109
107
如果变量的初始值是空数组,那么 TypeScript 会推断数组类型是` any[] ` 。
110
108
@@ -150,9 +148,9 @@ arr[0] = 2;
150
148
151
149
上面示例中,修改` const ` 命令声明的数组的成员是允许的。
152
150
153
- 但是,很多时候确实有声明只读数组的需求 ,即不允许变动数组成员。
151
+ 但是,很多时候确实有声明为只读数组的需求 ,即不允许变动数组成员。
154
152
155
- TypeScript 允许声明只读数组,方法是在在数组类型前面加上 ` readonly ` 关键字。
153
+ TypeScript 允许声明只读数组,方法是在数组类型前面加上 ` readonly ` 关键字。
156
154
157
155
``` typescript
158
156
const arr: readonly number [] = [0 , 1 ];
@@ -232,3 +230,4 @@ var multi:number[][] =
232
230
```
233
231
234
232
上面示例中,变量` multi ` 的类型是` number[][] ` ,表示它是一个二维数组,最底层的数组成员类型是` number ` 。
233
+
0 commit comments