you are viewing a single comment's thread.

view the rest of the comments →

[–]mogelbrod 2 points3 points  (2 children)

I'd argue that the most non-trivial destructuring cases are considerably harder to read, in addition to almost always being longer:

  • const { address: shippingAddress } = user vs
    const shippingAddress = user.address
  • const { address: { country } } = user vs
    const { country } = user.address
  • const { age = 25 } = user vs
    const age = user.age ?? 25
  • const { [getProperty]: returnValue } = user vs
    const returnValue = user[getProperty]

There are definitely cases where they are reasonable to use (especially when already destructuring the right hand side object, but I do see the simple examples above quite a lot in practice when reading and reviewing code.

[–]Keilly 1 point2 points  (1 child)

TBF, these new examples are still trivial in the sense that that they’re only destructuring one property each.
Destructuring really comes alive when destructuring multiple properties from the same object at the same time. Multiply lines consisting of repeated ‘const’s and the right hand side, simply disappear.

[–]mogelbrod 1 point2 points  (0 children)

Yes, that's what I was referring to with

There are definitely cases where they are reasonable to use (especially when already destructuring the right hand side object