繁体   English   中英

使用 Map 与 Record 之间以及何时使用的差异

[英]Differences between and when to use Map vs Record

我正在尝试将一些使用 Map 的 Java 代码映射到 Typescript 代码。 我最初的想法是在 Typescript 中使用 Map,但对于我创建的界面,这没有用。 相反,我发现 Records 似乎完美地模拟了 Java 的 Map。

我的主要问题是什么时候应该在记录上使用 Typescript 的地图,什么时候应该在地图上使用 Typescripts 记录?

它们的工作方式有何不同?

viewMappings: Record<string, String[]>;
viewMappings: Map<String, String[]>;

例如

我希望这些可以在与我所在州非常相似的界面中工作,但他们没有,我正在寻找两者差异的文档。

记录定义为

type Record<K extends keyof any, T> = {
    [P in K]: T;
}

Map是原生的 JS ES6 数据结构。 Record 只是一种代表性的说法,“这个对象将被用作特定数据类型的键、值映射”。 它是一个使用{}创建的普通对象。 另一方面, Map对象具有这里描述的一些独特特征,需要实例化为new Map()

对我来说,重要的区别在于,使用 Record 键查找不会选择性地返回 undefined,这在我知道键不能丢失时简化了我的代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM