2017-03-31 48 views
0

我想有一个字符串的键值词典(或我应该使用地图?),例如:打字稿 - 破灭的字符串字典

private queryStringParams : { [key:string] : string } = { 
    "x":"y", 
    "foo":"bar" 
}; 

,然后爆\加盟\ flatmap \拉链将其转换为一个字符串,以便每个键\值对都通过分隔符连接,然后所有对通过分隔符连接。
例如以前的字典会变成这个以“&”作为1级符和“=”为2级符:

"foo=bar&x=y" 

我能做到这一点与数组和循环,而且想也许那里有更优雅用TypeScript来做到这一点。 (我会采取不作为答案)

+1

你可以只使用jQuery的['param'(http://api.jquery.com/jquery.param/)函数来完成它。 'jQuery.param(queryStringParams)'。在那里还有很多很多的库为URI提供相同的功能。 –

回答

2

我不能立即回想,但你可能需要hasOwnProperty检查取决于你的对象层次结构有多复杂。尽管如此,mapTypescript template strings,并join组合可以简化这个:

var value = Object.keys(queryStringParams) 
    .map((property) => `${property}=${queryStringParams[property]}`) 
    .join('&'); 
+0

对象层次与示例中一样。没有hasOwnProperty检查工作。谢谢。 – itaysk