问题出在 TypeScript 版本不同导致的行为差异上。在 TypeScript 4.0 之前的版本中,将一个数组作为扩展运算符的目标时,它会被当作一个单独的元素来处理。而在 TypeScript 4.0 及更高版本中,数组会被展开成单独的元素。
要解决这个问题,可以采取以下几种方法:
更新 TypeScript 版本:升级到 TypeScript 4.0 或更高版本,以便获得正确的行为。
使用数组的 concat 方法:使用 concat
方法将扩展元素与原数组合并,这样就可以得到预期的结果。
const arr1 = ['a'];
const arr2 = ['b'];
const result = arr1.concat(...arr2);
console.log(result); // ['a', 'b']
flat
方法将多维数组平铺成一维数组。const arr1 = ['a'];
const arr2 = ['b'];
const result = [...arr1, ...arr2].flat();
console.log(result); // ['a', 'b']
这些方法都可以解决在旧版本的 TypeScript 中出现的问题,但推荐升级到 TypeScript 4.0 或更高版本以获得更好的类型检查和语言特性支持。