prettier / prettier/prettier

Extra parentheses added for nullish coalescing operator in ternary expression

Open
#19,533 0 comments 0 reactions 1 assignee View on GitHub

@fisker is already working on this.

Since Jul 21, 2026.

help wanted lang:javascript
Dominant language
JavaScript
Stars
52.3k
Forks
5k
Avg merge
19h 2m
Merged PRs (30d)
117

Description

Prettier v3.9.4
Playground link

--parser babel

Input:

const value = condition ? (
  <Example /> // comment
) : (
  "alpha" ?? "bravo"
);

const value = condition ? (
  <Example /> // comment
) : (
  "alpha" + "bravo"
);

Output:

const value = condition ? (
  <Example /> // comment
) : (
  ("alpha" ?? "bravo")
);

const value = condition ? (
  <Example /> // comment
) : (
  "alpha" + "bravo"
);

Expected output:

const value = condition ? (
  <Example /> // comment
) : (
  "alpha" ?? "bravo"
);

const value = condition ? (
  <Example /> // comment
) : (
  "alpha" + "bravo"
);

(Same as input, unchanged.)

Why?

The nullish coalescing operator ends up in double parentheses even though the second (inner) pair is completely unnecessary. The second example shows the inconsistency with other operators. (The comment isn't actually necessary for the reproduction, it's just an easy way to force breaking, but a long line works just as well.)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.