typescript类型问题
type Arr = number[] | string[];type Arr1 = Array<string | number>;
const arr: Arr = [];
arr.push('123');
请问,为何使用Arr1
不报错,Arr
报错?
回答
第一个类型表示这个数组要么全都是 number
,要么全都是 string
,二者不可交叉出现。
第二个类型表示这个数组每个元素要么是 number
,要么是 string
,二者可以交叉出现。
而你用第一种类型的时候:
const arr: Arr = [];
此时 arr
里到底应该必须只存 number
还是必须只 string
是未知的,所以后面你必须先断言才可以 push。
以上是 typescript类型问题 的全部内容, 来源链接: utcz.com/a/98532.html