我正在尝试将一些使用Map的Java代码映射到Typescript代码。 我最初的想法是在Typescript中使用Map's,但是对于我正在创建的界面而言,这没有奏效。取而代之的是,我发现了Records,它似乎完全模仿了Java的Map。
我的主要问题是什么时候应该在记录上使用打字稿的地图,什么时候应该在地图上使用打字稿的记录?
它们的工作方式有何不同?
viewMappings: Record<string, String[]>;
viewMappings: Map<String, String[]>;
例如
我希望它们在与我的国家/地区的交互中非常相似,但是它们却不一样,并且正在寻找有关两者差异的文档。
答案 0 :(得分:2)
对我来说,重要的区别是,使用“记录”键查找键不会有选择地返回undefined,当我知道键不能丢失时,这简化了我的代码。
答案 1 :(得分:0)
记录定义为
type Record<K extends keyof any, T> = {
[P in K]: T;
}
Map
是本机JS ES6数据结构。记录只是一种代表性的说法,“该对象将被用作特定数据类型的键,值映射”。这是使用{}
创建的普通对象。另一方面,Map
对象具有here描述的一些独特特征,需要实例化为new Map()