Aliases with JavaScript Destructuring

By  on  

Destructuring in JavaScript has totally changed the way JavaScript is written these days;  code is more concise to write but but, from a visual standpoint, the syntax of the language has changed so much.  Any good developer knows, however, that change is the constant we live in.

The basic idea behind destructuring in object literals is as follows:

const obj = { x: 1 };

// Grabs obj.x as { x }
const { x } = obj;

There are cases where you want the destructured variable to have a different name than the property name; in that case, you'll use a : newName to specify a name for the variable:

// Grabs obj.x as as { otherName }
const { x: otherName } = obj;

The syntax for specifying an alternate destructured name for an object property is simple and needed.  Destructuring had the capability to confuse developers, especially array destructuring and function argument destructuring, but this alias syntax is a simple trick to keep in your locker!

Recent Features

  • By
    Creating Scrolling Parallax Effects with CSS

    Introduction For quite a long time now websites with the so called "parallax" effect have been really popular. In case you have not heard of this effect, it basically includes different layers of images that are moving in different directions or with different speed. This leads to a...

  • By
    Facebook Open Graph META Tags

    It's no secret that Facebook has become a major traffic driver for all types of websites.  Nowadays even large corporations steer consumers toward their Facebook pages instead of the corporate websites directly.  And of course there are Facebook "Like" and "Recommend" widgets on every website.  One...

Incredible Demos

  • By
    Build a Slick and Simple MooTools Accordion

    Last week I covered a smooth, subtle MooTools effect called Kwicks. Another great MooTools creation is the Accordion, which acts like...wait for it...an accordion! Now I've never been a huge Weird Al fan so this is as close to playing an accordion as...

  • By
    Create a Spinning, Zooming Effect with CSS3

    In case you weren't aware, CSS animations are awesome.  They're smooth, less taxing than JavaScript, and are the future of node animation within browsers.  Dojo's mobile solution, dojox.mobile, uses CSS animations instead of JavaScript to lighten the application's JavaScript footprint.  One of my favorite effects...

Discussion

  1. Always have to check your site first to see any updates. Love it david. That’s where good developers stand out. Always adapting to new changes. Just trying to get hang of destructing as i’m not the smartest one in the room.

  2. undefined alias

    Hello. I’m using an alias for my destructed object property. How can I handle the property when it’s undefined?
    Thanks.

  3. Jan

    I was looking for something like this. I wonder why the proposal for this feature didn’t follow the syntax of import statements.

    Example:

    const { x as otherName } = obj;
    
    • Memo

      this is the typescript syntax

  4. mark

    I don’t know why people call it an “alias”. If it were an alias, changing the variable would change the object property. E.g.

    let obj = { x: 1 }        
    let { x: x_notalias } = obj 
    x_notalias = 2                  // 2
    obj                             // { x: 1 }
    

    I think the only time you can have an alias in JavaScript is with reference types.

    let obj = { x: 1 }
    let obj_alias = obj
    obj_alias.x = 2
    obj                        // { x: 2 }
    
  5. Maksym Kulikovskiy

    When destructuring we use the word “alias” to refer to a differently named variable with the same value, rather than a different name that should reference the same variable.

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!