在TypeScript中将对象转换为键/值对象

时间:2020-06-19 18:35:07

标签: typescript

我是TypeScript的新手,并且具有给定的对象

let obj = {hash: 'foo', filename: 'bar', blob_size: 'bas'};

我想将其转换为以下内容

{'foo': ['bar', 'bas']}

这是我的第一次尝试:

[...obj.values()].map((v) => {v.hash: [v.filename, v.blob_size]}]

但这在TS中似乎无效。在其他语言中,我将其简称为“数组和字典”或“映射”。有人可以提示我如何将第一个转换为第二个示例吗?而且,对应的类型名称是什么?在这两种情况下,typeof仅返回Object

1 个答案:

答案 0 :(得分:1)

目标对象的TypeScript形状可以定义为:

type HashObj = {
  [hash: string]: string[]
}

基本上是一个具有字符串键和字符串数组值的对象

您可以这样转换:

let obj = { hash: 'foo', filename: 'bar', blob_size: 'bas' };
const result: HashObj = { [obj.hash]: [obj.filename, obj.blob_size] };
相关问题