迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > TypeScript >

如何在 TypeScript 中合并数组

作者:迹忆客 最近更新:2022/09/12 浏览次数:

使用扩展语法在 TypeScript 中合并数组,例如 const arr3 = [...arr1, ...arr2]。 扩展语法会将数组的值解包到一个新数组中。 最终数组的类型将反映所提供数组中值的类型。

const arr1 = ['a', 'b'];
const arr2 = ['c', 'd'];

// 👇️ const arr3: string[]
const arr3 = [...arr1, ...arr2];

我们使用扩展语法 (...) 将 2 个数组的元素解析到第三个数组中。

最终数组的类型将反映所提供数组的类型。

const arr1 = ['a', 'b'];
const arr2 = [1, 2];

// 👇️ const arr3: (string | number)[]
const arr3 = [...arr1, ...arr2];

// 👇️ ['a', 'b', 1, 2]
console.log(arr3);

我们使用扩展语法 (...) 将字符串和数字数组解析到第三个数组中。

第三个数组的类型是表示字符串和数字数组的联合。

使用扩展语法时,解析数组的顺序很重要。

const arr1 = ['a', 'b'];
const arr2 = ['c', 'd'];

// 👇️ const arr3: string[]
const arr3 = [...arr2, ...arr1];

// 👇️ ['c', 'd', 'a', 'b']
console.log(arr3);

可以根据需要对尽可能多的数组重复此过程。

const arr1 = ['a', 'b'];
const arr2 = ['c', 'd'];
const arr3 = ['e', 'f'];

// 👇️ const arr3: string[]
const arr4 = [...arr1, ...arr2, ...arr3];

// 👇️ ['a', 'b', 'c,' 'd', 'e', 'f']
console.log(arr4);

我们可能还会看到 Array.concat 方法用于在 TypeScript 中合并数组。

const arr1 = ['a', 'b'];
const arr2 = ['c', 'd'];
const arr3 = ['e', 'f'];

// 👇️ const arr3: string[]
const arr4 = arr1.concat(arr2, arr3);

// 👇️ ['a', 'b', 'c,' 'd', 'e', 'f']
console.log(arr4);

concat 方法还合并两个或多个数组。 该方法将一个或多个数组作为参数,并将它们合并到调用它的数组中。

但是,我们应该坚持使用扩展语法 (...),因为 TypeScript 中 concat 方法的分型并不那么直观。

const arr1 = ['a', 'b'];
const arr2 = [1, 2];

// ⛔️  Type 'number[]' is not assignable to
// type 'ConcatArray<string>'.ts(2769)
const arr3 = arr1.concat(arr2);

typescript 类型限定错误

上面的示例导致类型检查器抛出错误,因为我们在字符串数组上调用了 concat() 方法并将其传递给了一个数字数组。

类型限定 期望我们只将与参数相同类型的数组传递给 concat 方法。

使用扩展语法 (...) 时情况并非如此,后者更加灵活。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 TypeScript 中返回一个 Promise

发布时间:2023/03/19 浏览次数:182 分类:TypeScript

本教程讨论如何在 TypeScript 中返回正确的 Promise。这将提供 TypeScript 中 Returns Promise 的完整编码示例,并完整演示每个步骤。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便