Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript typescript中的映射初始化_Javascript_Typescript - Fatal编程技术网

Javascript typescript中的映射初始化

Javascript typescript中的映射初始化,javascript,typescript,Javascript,Typescript,我正在尝试用typescript初始化下面的映射。当我打印它时,它似乎是空的 let map: Map<string, object> = new Map<string, object> ([ [ "api/service/method", { uriPath: {} } ], [ "\"type\": \&qu

我正在尝试用typescript初始化下面的映射。当我打印它时,它似乎是空的

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]));