Search code examples
javascripttypescript

Optional chaining on the left side in Javascript


Is it possible to use the optional chaining operator in the left side of an assignment = in Javascript?

const building = {}
building?.floor?.apartment?.number = 3; // Is this possible?

Solution

  • There is a proposal (in stage 1) to support it: https://github.com/nicolo-ribaudo/proposal-optional-chaining-assignment


    It's not possible, sorry.

    In the interest of a canonical answer: The MDN documentation isn't explicit about this, but you can read the proposal's README in GitHub for more information. It says:

    The following is not supported, although it has some use cases; see Issue #18 for discussion:

    • optional property assignment: a?.b = c

    In the linked issue are the comments 1:

    OK, seems like there's a rough agreement in this thread not to do the write case in the first iteration.

    and 2:

    We also discussed this question at TC39, and the committee did not seem so interested in adding this feature.

    So I guess it's not likely to happen anytime soon.

    Hope that helps; good luck!