如何在TypeScript中合并数组?

在 TypeScript 中合并数组

使用展开语法...在 TypeScript 中合并数组。排列语法将把数组的值解压到一个新数组中。

新数组的类型将反映所提供数组中值的类型。

const arr1 = ['mybj', '123'];
const arr2 = ['.', 'com'];

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

console.log(arr3); // 👉️ [ 'mybj', '123', '.', 'com' ]

我们使用展开语法()将 2 个数组的元素解构为第三个数组。

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

const arr1 = ['mybj', '123'];
const arr2 = [1, 2];

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

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

我们使用展开语法(…)将字符串和数字数组解构缩为第三个数组。

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

下面是一个显式键入数组的示例。

const arr1: string[] = ['mybj', '123'];
const arr2: number[] = [1, 2];

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

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

如果试图将指定类型以外的任何其他类型的值添加到数组中,类型检查器将抛出错误。

语法(string | number)[]称为并集,表示数组可以包含字符串和数字。

请注意,在 TypeScript 中键入数组的语法是type[],而不是[type]

  • [type]语法用于声明包含单个类型元素的元组。
  • type[]语法用于声明一个数组,该数组包含零个或多个类型为的元素。

使用展开语法时,对数组进行解构的顺序很重要。

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);

使用 concat()合并 TypeScript 中的数组

我们还可以在 TypeScript 中看到用于合并数组的Array.concat()方法。

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);

如何在 TypeScript 中合并数组?

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

但是,我个人推荐还是使用展开语法(),因为 TypeScript 中concat()方法的显得不那么直观。

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

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

上面代码导致类型检查器抛出错误,因为我们对字符串数组调用了concat()方法,并向其传递了一个数字数组。

代码中希望只将与参数类型相同的数组传递给 concat()方法。

当我们使用更灵活的展开语法()时,情况并非如此。

「点点赞赏,手留余香」

0

给作者打赏,鼓励TA抓紧创作!

微信微信 支付宝支付宝

还没有人赞赏,快来当第一个赞赏的人吧!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
码云笔记 » 如何在TypeScript中合并数组?

发表回复