如何在 TypeScript 中合并 Map
要在 TypeScript 中合并map:
- 显式键入第三个 Map 的键和值。
- 使用扩展语法 (...) 解包前两个 Map 的键值对。
- Map 的键和值的类型必须匹配。
const map1 = new Map([['country', 'Germany']]);
const map2 = new Map([['salary', 100]]);
const map3 = new Map<string, string | number>([...map1, ...map2]);
// 👇️ {'country' => 'Germany', 'salary' => 100}
console.log(map3);
我们使用泛型来键入第三个 Map 对象的键和值。
我们可以对前两个 Map 做同样的事情,但它不是必需的,因为 TypeScript 能够根据传入的值推断类型。
以下代码片段实现了相同的结果。
const map1 = new Map<string, string>([['country', 'Germany']]);
const map2 = new Map<string, number>([['salary', 100]]);
const map3 = new Map<string, string | number>([...map1, ...map2]);
// 👇️ {'country' => 'Germany', 'salary' => 100}
console.log(map3);
第一个 Map 具有字符串类型的键和字符串类型的值。
第二个 Map 具有字符串类型的键和数字类型的值。
在合并 Map 时,我们必须确保第三个 Map 的类型与其他两个 Map 的类型一致。
该示例显示了我们如何必须使用联合类型将第三个映射的值设置为字符串或数字。
我们使用扩展运算符 (...)
将 2 个 Map 对象中的键值对解包到一个数组中。
const map1 = new Map<string, string>([['country', 'Germany']]);
// 👇️ [ ['country', 'Germany'] ]
console.log([...map1]);
该数组包含由键值对组成的嵌套数组。
最后一步是将数组传递给 Map() 构造函数,该构造函数将一个可迭代对象作为参数。
设置好值后,示例如下所示:
const map3 = new Map<string, string | number>([
['country', 'Germany'],
['salary', 100],
]);
可迭代的 Map 必须由键值对组成,例如 一个二维数组或另一个 Map 对象。
只要最终 Map 的类型与其他 Map 的类型一致,就可以根据需要对尽可能多的 Map 对象重复此过程。
const map1 = new Map<string, string>([['country', 'Germany']]);
const map2 = new Map<string, number>([['salary', 100]]);
const map3 = new Map<string, boolean>([['isProgrammer', true]]);
const map4 = new Map<string, string | number | boolean>([
...map1,
...map2,
...map3,
]);
第四个 Map 中的值类型必须与所有其他 Map 中的值类型兼容。
请注意,保留键的插入顺序。 如果我们需要重新排序键值对,只需切换使用扩展运算符 (...) 的顺序即可。
相关文章
在 Golang 中合并两个 Map
发布时间:2023/04/27 浏览次数:145 分类:Go
-
本篇文章介绍如何在 Golang 中合并两个 map。Golang 不提供任何内置功能来合并映射,但这可以使用 Copy 方法或遵循相应的过程来实现。 让我们试试这两种方法。
在 AngularJs 中设置 Select From Typescript 的默认选项值
发布时间:2023/04/14 浏览次数:78 分类:Angular
-
本教程提供了在 AngularJs 中从 TypeScript 中设置 HTML 标记选择的默认选项的解释性解决方案。
在 Angular 中使用 TypeScript 的 getElementById 替换
发布时间:2023/04/14 浏览次数:153 分类:Angular
-
本教程指南提供了有关使用 TypeScript 在 Angular 中替换 document.getElementById 的简要说明。这也提供了在 Angular 中 getElementById 的最佳方法。
在 TypeScript 中使用 try..catch..finally 处理异常
发布时间:2023/03/19 浏览次数:181 分类:TypeScript
-
本文详细介绍了如何在 TypeScript 中使用 try..catch..finally 进行异常处理,并附有示例。
在 TypeScript 中使用 declare 关键字
发布时间:2023/03/19 浏览次数:97 分类:TypeScript
-
本教程指南通过特定的实现和编码示例深入了解了 TypeScript 中 declare 关键字的用途。
在 TypeScript 中 get 和 set
发布时间:2023/03/19 浏览次数:172 分类:TypeScript
-
本篇文章演示了类的 get 和 set 属性以及如何在 TypeScript 中实现它。
在 TypeScript 中格式化日期和时间
发布时间:2023/03/19 浏览次数:161 分类:TypeScript
-
本教程介绍内置对象 Date() 并讨论在 Typescript 中获取、设置和格式化日期和时间的各种方法。
在 TypeScript 中返回一个 Promise
发布时间:2023/03/19 浏览次数:182 分类:TypeScript
-
本教程讨论如何在 TypeScript 中返回正确的 Promise。这将提供 TypeScript 中 Returns Promise 的完整编码示例,并完整演示每个步骤。
在 TypeScript 中定义函数回调的类型
发布时间:2023/03/19 浏览次数:221 分类:TypeScript
-
本教程说明了在 TypeScript 中为函数回调定义类型的解决方案。为了程序员的方便和方便,实施了不同的编码实践指南。