Search code examples
javascriptecmascript-6variable-assignmentdestructuring

ES6 Destructuring assignment with `this`


The code below works. Is there a way that is more convenient, if possible even a one-liner?

const { nextUrl, posts } = await postService.getCommunityPosts(6);
this.communityPosts = posts;
this.nextUrl = nextUrl;

I know about giving destructured properties aliases but I don't think that helps in this case. MDN doesn't say anything about that case.


Solution

  • You can assign to the properties of an existing object by giving aliases and encapsulating the assignment in parentheses (await codepen).

    const demo = { nextUrl: 'nextUrl', posts: 'posts' };
    
    const target = {}; // replace target with this
    
    ({ nextUrl: target.nextUrl, posts: target.communityPosts } = demo);
    
    console.log(target);