type Arr = number[] | string[]; type Arr1 = Array<string | number>; const arr: Arr = []; arr.push('123');
请问,为何使用Arr1不报错,Arr报错?
Arr1
Arr
第一个类型表示这个数组要么全都是 number,要么全都是 string,二者不可交叉出现。
number
string
第二个类型表示这个数组每个元素要么是 number,要么是 string,二者可以交叉出现。
而你用第一种类型的时候:
const arr: Arr = [];
此时 arr 里到底应该必须只存 number 还是必须只 string 是未知的,所以后面你必须先断言才可以 push。
arr
2.1m questions
2.1m answers
60 comments
57.0k users