我是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
。
答案 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] };