proposal-nullish-coalescing VS proposal-optional-chaining

Compare proposal-nullish-coalescing vs proposal-optional-chaining and see what are their differences.

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
proposal-nullish-coalescing proposal-optional-chaining
5 5
1,232 4,985
- -
0.0 1.1
over 1 year ago over 2 years ago
HTML HTML
- -
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

proposal-nullish-coalescing

Posts with mentions or reviews of proposal-nullish-coalescing. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-01-12.
  • Unveiling Breakthroughs Found In The State Of JS 2022 Survey
    5 projects | dev.to | 12 Jan 2023
    For more info about this feature, you can refer to the original proposal.
  • Javascript: El operador nullish-coalescing
    2 projects | dev.to | 9 Dec 2022
    Propuesta
  • PEP 505 – None-aware operators (2015)
    2 projects | news.ycombinator.com | 2 Aug 2022
    For comparison, here are the Javascript RFCs for the equivalent operators:

    https://github.com/TC39/proposal-optional-chaining

    https://github.com/tc39/proposal-nullish-coalescing

    IMO optional chaining is a lifesaver when dealing with deeply nested JSON, and it's become indispensable in our Typescript code. But we also deal with JSON from various third-party endpoints in Python, and far too often we resort to an inefficient deep_get utility to make our code sensical.

    > if json?.get("foo")?.get("bar")?[0]?.get("baz")

    may seem messy but would be infinitely better than the fragile (note the nested list-of-a-single-dict, and how bugs can appear if it's not there):

    > if json.get("foo", {}).get("bar", [{}])[0].get("baz")

    or the inefficient

    > if deep_get(json, "foo.bar.0.baz")

    It's not nearly as good as the Typescript json.foo?.bar?.[0]?.baz - but it's good enough!

  • Stage 4: Nullish Coalescing for JavaScript
    1 project | dev.to | 17 Oct 2021
  • Using the optional chaining operator in JavaScript
    1 project | dev.to | 22 Mar 2021
    The nullish coalescing proposal provides a way to handle undefined or null values and provide default values for the expression. You can use the “??” operator to provide a default value for an expression.

proposal-optional-chaining

Posts with mentions or reviews of proposal-optional-chaining. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-10-21.
  • What Operators Do You WISH Programming Languages Had? [Discussion]
    4 projects | /r/ProgrammingLanguages | 21 Oct 2022
    Nullable property access can be useful sometimes
  • PEP 505 – None-aware operators (2015)
    2 projects | news.ycombinator.com | 2 Aug 2022
    For comparison, here are the Javascript RFCs for the equivalent operators:

    https://github.com/TC39/proposal-optional-chaining

    https://github.com/tc39/proposal-nullish-coalescing

    IMO optional chaining is a lifesaver when dealing with deeply nested JSON, and it's become indispensable in our Typescript code. But we also deal with JSON from various third-party endpoints in Python, and far too often we resort to an inefficient deep_get utility to make our code sensical.

    > if json?.get("foo")?.get("bar")?[0]?.get("baz")

    may seem messy but would be infinitely better than the fragile (note the nested list-of-a-single-dict, and how bugs can appear if it's not there):

    > if json.get("foo", {}).get("bar", [{}])[0].get("baz")

    or the inefficient

    > if deep_get(json, "foo.bar.0.baz")

    It's not nearly as good as the Typescript json.foo?.bar?.[0]?.baz - but it's good enough!

  • Optional Chaining `?.` do multiple null checks
    1 project | dev.to | 28 Feb 2021
    Current Status: ECMAScript proposal at stage 4 of the process.
  • PHP 8 features I wish also existed in JavaScript
    1 project | dev.to | 8 Feb 2021
    In JavaScript you still have to check step by step, if the corresponding property exists. There is a corresponding TC39 proposal which is in stage 4 by now and I'm really looking forward to this being part of the ECMAScript Specs.
  • [AskJS] Over-using optional chaining. Is this pattern common?
    1 project | /r/javascript | 20 Jan 2021
    https://github.com/tc39/proposal-optional-chaining#is-this-error-suppression

What are some alternatives?

When comparing proposal-nullish-coalescing and proposal-optional-chaining you can also consider the following projects:

proposal-top-level-await - top-level `await` proposal for ECMAScript (stage 4)

hoogle - Haskell API search engine

proposal-regexp-match-indices - ECMAScript RegExp Match Indices

roast - 🦋 Raku test suite

proposals - Tracking ECMAScript Proposals

Forscape - Scientific computing language

babel-sublime - Syntax definitions for ES6 JavaScript with React JSX extensions.