Javascript typescript中的映射初始化
我正在尝试用typescript初始化下面的映射。当我打印它时,它似乎是空的Javascript typescript中的映射初始化,javascript,typescript,Javascript,Typescript,我正在尝试用typescript初始化下面的映射。当我打印它时,它似乎是空的 let map: Map<string, object> = new Map<string, object> ([ [ "api/service/method", { uriPath: {} } ], [ "\"type\": \&qu
let map: Map<string, object> = new Map<string, object> ([
[
"api/service/method",
{
uriPath: {}
}
],
[
"\"type\": \"html\"",
{
body: {}
}
]
]);
console.log(JSON.stringify(map));
// printing {}
// but not the initialized values
让映射:映射=新映射([
[
“api/服务/方法”,
{
uriPath:{}
}
],
[
“\”类型\“:\”html\”,
{
正文:{}
}
]
]);
log(JSON.stringify(map));
//打印{}
//但不是初始化值
这是因为JSON.stringify
不知道如何对映射进行stringify,因此它将尝试对底层对象进行stringify,这将导致一个空对象
尝试
console.log(JSON.stringify([…a.entries()])代码>相反,它已正确初始化,但打印它并不像打印数组那样打印所有值。但您可以通过访问密钥进行检查-它们存在:
let map=新映射([
[
“api/服务/方法”,
{
uriPath:{}
}
],
[
“\”类型\“:\”html\”,
{
正文:{}
}
]
]);
控制台日志(map);
log(map.get('api/service/method');
log(map.get(''type:'html')代码>字符串化对象涉及字符串化其属性,但贴图不使用属性保存其数据。因此,如果您天真地将其字符串化,则会得到一个空对象
而是先将其转换为数组:
console.log(JSON.stringify([...map]));