我已将 typescript-collection 包安装到我的 Angular 项目中以使用 Dictionary 类型。 我想将社交媒体上的所有最新帖子以及图像发布日期保存在字典中。之后我想将所有词典合并为一本词典。
let TwitterPosts = this.getLatestTwitterPosts();
let InstagramPosts = this.getLatestInstagramPosts();
let FacebookPosts = this.getLatestsFacebookPosts();
getLatests[type]Posts-Methods 是这样的:
const type = 'twitter';
let TwitterPosts = new Collections.Dictionary<number, PostSocialmediaFeedComponent>();
for (let count = 0; count < 10; count++) {
let PostedDate: Date;
let url: string;
// USING THE API TO GET THE VALUES
TwitterPosts.setValue(count, new PostSocialmediaFeedComponent(url, PostedDate, type));
}
return TwitterPosts;
只需使用一个简单的对象,合并就变得微不足道,并且在语法上得到支持。不要在不需要的复杂库上浪费时间。
const type = 'twitter';
const twitterPosts: {[key: number]: PostSocialmediaFeedComponent} = {};
for (let count = 0; count < 10; count++) {
// USING THE API TO GET THE VALUES
twitterPosts[count] = new PostSocialmediaFeedComponent(url, PostedDate, type);
}
return TwitterPosts;
除了简化依赖关系并使代码更简单之外,使用对象还为您提供了对简单合并的语法支持。
const twitterPosts = this.getLatestTwitterPosts();
const instagramPosts = this.getLatestInstagramPosts();
const facebookPosts = this.getLatestsFacebookPosts();
const merged = {
...twitterPosts,
...instagramPosts,
...facebookPosts
};
这是内置 ECMAScript 标准库功能的有效语法糖
Object.assign
const merged = Object.assign({}, twitterPosts, instagramPosts, facebookPosts);