Content-Length: 448335 | pFad | https://redirect.github.com/prettier/prettier/pull/17650

1D Allow const without initializer in `babel-ts` parser by fisker · Pull Request #17650 · prettier/prettier · GitHub
Skip to content

Allow const without initializer in babel-ts parser #17650

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 8 commits into from
Jun 23, 2025

Conversation

fisker
Copy link
Member

@fisker fisker commented Jun 23, 2025

Description

Part of #17649

Checklist

  • I’ve added tests to confirm my change works.
  • (If changing the API or CLI) I’ve documented the changes I’ve made (in the docs/ directory).
  • (If the change is user-facing) I’ve added my changes to changelog_unreleased/*/XXXX.md file following changelog_unreleased/TEMPLATE.md.
  • I’ve read the contributing guidelines.

appendPlugins(["jsx", "typescript"]),
appendPlugins(["typescript"]),
appendPlugins(["jsx", ["typescript", { dts: true }]]),
appendPlugins([["typescript", { dts: true }]]),
Copy link
Member Author

@fisker fisker Jun 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think this is required for babelTSExpression parser bellow.

Copy link

pkg-pr-new bot commented Jun 23, 2025

Open in StackBlitz

yarn add https://pkg.pr.new/prettier/prettier/@prettier/plugin-hermes@17650.tgz
yarn add https://pkg.pr.new/prettier/prettier/@prettier/plugin-oxc@17650.tgz
yarn add https://pkg.pr.new/prettier/prettier@17650.tgz

commit: 8f7cd59

Copy link

netlify bot commented Jun 23, 2025

Deploy Preview for prettier ready!

Name Link
🔨 Latest commit 8f7cd59
🔍 Latest deploy log https://app.netlify.com/projects/prettier/deploys/68592611208bed0008421487
😎 Deploy Preview https://deploy-preview-17650--prettier.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@fisker fisker changed the title Add dts: true to babel's typescript plugin Allow const without initializer in babel-ts parser Jun 23, 2025
@fisker fisker marked this pull request as ready for review June 23, 2025 10:14
@fisker fisker requested a review from sosukesuzuki June 23, 2025 10:19
@fisker fisker merged commit 93bc1df into prettier:main Jun 23, 2025
33 checks passed
@fisker fisker deleted the babel-ts-dts branch June 23, 2025 10:31
apricote pushed a commit to hetznercloud/fleeting-plugin-hetzner that referenced this pull request Jul 4, 2025
…fleeting-plugin-hetzner!256)

This MR contains the following updates:

| Package | Change | Age | Confidence |
|---|---|---|---|
| [prettier](https://prettier.io) ([source](https://github.com/prettier/prettier)) | `3.3.3` -> `3.6.2` | [![age](https://developer.mend.io/api/mc/badges/age/npm/prettier/3.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/prettier/3.3.3/3.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

Note: The `pre-commit` manager in Renovate is not supported by the `pre-commit` maintainers or community. Please do not report any problems there, instead [create a Discussion in the Renovate repository](https://github.com/renovatebot/renovate/discussions/new) if you have any questions.

---

### Release Notes

<details>
<summary>prettier/prettier (prettier)</summary>

### [`v3.6.2`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#362)

[Compare Source](prettier/prettier@3.6.1...3.6.2)

[diff](prettier/prettier@3.6.1...3.6.2)

##### Markdown: Add missing blank line around code block ([#&#8203;17675](prettier/prettier#17675) by [@&#8203;fisker](https://github.com/fisker))

<!-- prettier-ignore -->

````md
<!-- Input -->
1. Some text, and code block below, with newline after code block

   ```yaml
   ---
   foo: bar
   ```

   1. Another
   2. List

<!-- Prettier 3.6.1 -->
1. Some text, and code block below, with newline after code block

   ```yaml
   ---
   foo: bar
   ```
   1. Another
   2. List

<!-- Prettier 3.6.2 -->
1. Some text, and code block below, with newline after code block

   ```yaml
   ---
   foo: bar
   ```

   1. Another
   2. List
````

### [`v3.6.1`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#361)

[Compare Source](prettier/prettier@3.6.0...3.6.1)

[diff](prettier/prettier@3.6.0...3.6.1)

##### TypeScript: Allow const without initializer ([#&#8203;17650](prettier/prettier#17650), [#&#8203;17654](prettier/prettier#17654) by [@&#8203;fisker](https://github.com/fisker))

<!-- prettier-ignore -->

```jsx
// Input
export const version: string;

// Prettier 3.6.0 (--parser=babel-ts)
SyntaxError: Unexpected token (1:21)
> 1 | export const version: string;
    |                     ^

// Prettier 3.6.0 (--parser=oxc-ts)
SyntaxError: Missing initializer in const declaration (1:14)
> 1 | export const version: string;
    |              ^^^^^^^^^^^^^^^

// Prettier 3.6.1
export const version: string;
```

##### Miscellaneous: Avoid closing files multiple times ([#&#8203;17665](prettier/prettier#17665) by [@&#8203;43081j](https://github.com/43081j))

When reading a file to infer the interpreter from a shebang, we use the
`n-readlines` library to read the first line in order to get the shebang.

This library closes files when it reaches EOF, and we later try close the same
files again. We now close files only if `n-readlines` did not already close
them.

### [`v3.6.0`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#360)

[Compare Source](prettier/prettier@3.5.3...3.6.0)

[diff](prettier/prettier@3.5.3...3.6.0)

🔗 [Release Notes](https://prettier.io/blog/2025/06/23/3.6.0)

### [`v3.5.3`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#353)

[Compare Source](prettier/prettier@3.5.2...3.5.3)

[diff](prettier/prettier@3.5.2...3.5.3)

##### Flow: Fix missing parentheses in `ConditionalTypeAnnotation` ([#&#8203;17196](prettier/prettier#17196) by [@&#8203;fisker](https://github.com/fisker))

<!-- prettier-ignore -->

```jsx
// Input
type T<U> = 'a' | ('b' extends U ? 'c' : empty);
type T<U> = 'a' & ('b' extends U ? 'c' : empty);

// Prettier 3.5.2
type T<U> = "a" | "b" extends U ? "c" : empty;
type T<U> = "a" & "b" extends U ? "c" : empty;

// Prettier 3.5.3
type T<U> = "a" | ("b" extends U ? "c" : empty);
type T<U> = "a" & ("b" extends U ? "c" : empty);
```

### [`v3.5.2`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#352)

[Compare Source](prettier/prettier@3.5.1...3.5.2)

[diff](prettier/prettier@3.5.1...3.5.2)

##### Remove `module-sync` condition ([#&#8203;17156](prettier/prettier#17156) by [@&#8203;fisker](https://github.com/fisker))

In Prettier 3.5.0, [we added `module-sync` condition to `package.json`](https://prettier.io/blog/2025/02/09/3.5.0#use-esm-entrypoint-for-requireesm-16958-by-tats-u), so that `require("prettier")` can use ESM version, but turns out it doesn't work if CommonJS and ESM plugins both imports builtin plugins. To solve this problem, we decide simply remove the `module-sync` condition, so `require("prettier")` will still use the CommonJS version, we'll revisit until `require(ESM)` feature is more stable.

### [`v3.5.1`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#351)

[Compare Source](prettier/prettier@3.5.0...3.5.1)

[diff](prettier/prettier@3.5.0...3.5.1)

##### Fix CLI crash when cache for old version exists ([#&#8203;17100](prettier/prettier#17100) by [@&#8203;sosukesuzuki](https://github.com/sosukesuzuki))

Prettier 3.5 uses a different cache format than previous versions, Prettier 3.5.0 crashes when reading existing cache file, Prettier 3.5.1 fixed the problem.

##### Support dockercompose and github-actions-workflow in VSCode ([#&#8203;17101](prettier/prettier#17101) by [@&#8203;remcohaszing](https://github.com/remcohaszing))

Prettier now supports the `dockercompose` and `github-actions-workflow` languages in Visual Studio Code.

### [`v3.5.0`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#350)

[Compare Source](prettier/prettier@3.4.2...3.5.0)

[diff](prettier/prettier@3.4.2...3.5.0)

🔗 [Release Notes](https://prettier.io/blog/2025/02/09/3.5.0.html)

### [`v3.4.2`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#342)

[Compare Source](prettier/prettier@3.4.1...3.4.2)

[diff](prettier/prettier@3.4.1...3.4.2)

##### Treat U+30A0 & U+30FB in Katakana Block as CJK ([#&#8203;16796](prettier/prettier#16796) by [@&#8203;tats-u](https://github.com/tats-u))

Prettier doesn't treat U+30A0 & U+30FB as Japanese. U+30FB is commonly used in Japanese to represent the delimitation of first and last names of non-Japanese people or “and”. The following “C言語・C++・Go・Rust” means “C language & C++ & Go & Rust” in Japanese.

<!-- prettier-ignore -->

```md
<!-- Input (--prose-wrap=never) -->

C言
語
・
C++
・
Go
・
Rust

<!-- Prettier 3.4.1 -->
C言語・ C++ ・ Go ・ Rust

<!-- Prettier 3.4.2 -->
C言語・C++・Go・Rust
```

U+30A0 can be used as the replacement of the `-` in non-Japanese names (e.g. “Saint-Saëns” (Charles Camille Saint-Saëns) can be represented as “サン゠サーンス” in Japanese), but substituted by ASCII hyphen (U+002D) or U+FF1D (full width hyphen) in many cases (e.g. “サン=サーンス” or “サン=サーンス”).

##### Fix comments print on class methods with decorators ([#&#8203;16891](prettier/prettier#16891) by [@&#8203;fisker](https://github.com/fisker))

<!-- prettier-ignore -->

```jsx
// Input
class A {
  @&#8203;decorator
  /** 
   * The method description
   *
  */
  async method(foo: Foo, bar: Bar) {
    console.log(foo);
  }
}

// Prettier 3.4.1
class A {
  @&#8203;decorator
  async /**
   * The method description
   *
   */
  method(foo: Foo, bar: Bar) {
    console.log(foo);
  }
}

// Prettier 3.4.2
class A {
  @&#8203;decorator
  /**
   * The method description
   *
   */
  async method(foo: Foo, bar: Bar) {
    console.log(foo);
  }
}
```

##### Fix non-idempotent formatting ([#&#8203;16899](prettier/prettier#16899) by [@&#8203;seiyab](https://github.com/seiyab))

This bug fix is not language-specific. You may see similar change in any languages. This fixes regression in 3.4.0 so change caused by it should yield same formatting as 3.3.3.

<!-- prettier-ignore -->

```jsx
// Input
<div>
  foo
  <span>longlonglonglonglonglonglonglonglonglonglonglonglonglonglongl foo</span>
  , abc
</div>;

// Prettier 3.4.1 (first)
<div>
  foo
  <span>
    longlonglonglonglonglonglonglonglonglonglonglonglonglonglongl foo
  </span>, abc
</div>;

// Prettier 3.4.1 (second)
<div>
  foo
  <span>longlonglonglonglonglonglonglonglonglonglonglonglonglonglongl foo</span>
  , abc
</div>;

// Prettier 3.4.2
<div>
  foo
  <span>longlonglonglonglonglonglonglonglonglonglonglonglonglonglongl foo</span>
  , abc
</div>;
```

### [`v3.4.1`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#341)

[Compare Source](prettier/prettier@3.4.0...3.4.1)

[diff](prettier/prettier@3.4.0...3.4.1)

##### Remove unnecessary parentheses around assignment in `v-on` ([#&#8203;16887](prettier/prettier#16887) by [@&#8203;fisker](https://github.com/fisker))

<!-- prettier-ignore -->

```vue
<!-- Input -->
<template>
  <button @&#8203;click="foo += 2">Click</button>
</template>

<!-- Prettier 3.4.0 -->
<template>
  <button @&#8203;click="(foo += 2)">Click</button>
</template>

<!-- Prettier 3.4.1 -->
<template>
  <button @&#8203;click="foo += 2">Click</button>
</template>
```

### [`v3.4.0`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#340)

[Compare Source](prettier/prettier@3.3.3...3.4.0)

[diff](prettier/prettier@3.3.3...3.4.0)

🔗 [Release Notes](https://prettier.io/blog/2024/11/26/3.4.0.html)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever MR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this MR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box

---

This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xOS4wIiwidXBkYXRlZEluVmVyIjoiNDEuMTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->
renovate bot added a commit to andrei-picus-tink/auto-renovate that referenced this pull request Jul 13, 2025
| datasource | package  | from  | to    |
| ---------- | -------- | ----- | ----- |
| npm        | prettier | 3.5.3 | 3.6.2 |


## [v3.6.2](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#362)

[diff](prettier/prettier@3.6.1...3.6.2)

##### Markdown: Add missing blank line around code block ([#17675](prettier/prettier#17675) by [@fisker](https://github.com/fisker))

<!-- prettier-ignore -->

````md
<!-- Input -->
1. Some text, and code block below, with newline after code block

   ```yaml
   ---
   foo: bar
   ```

   1. Another
   2. List

<!-- Prettier 3.6.1 -->
1. Some text, and code block below, with newline after code block

   ```yaml
   ---
   foo: bar
   ```
   1. Another
   2. List

<!-- Prettier 3.6.2 -->
1. Some text, and code block below, with newline after code block

   ```yaml
   ---
   foo: bar
   ```

   1. Another
   2. List
````


## [v3.6.1](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#361)

[diff](prettier/prettier@3.6.0...3.6.1)

##### TypeScript: Allow const without initializer ([#17650](prettier/prettier#17650), [#17654](prettier/prettier#17654) by [@fisker](https://github.com/fisker))

<!-- prettier-ignore -->

```jsx
// Input
export const version: string;

// Prettier 3.6.0 (--parser=babel-ts)
SyntaxError: Unexpected token (1:21)
> 1 | export const version: string;
    |                     ^

// Prettier 3.6.0 (--parser=oxc-ts)
SyntaxError: Missing initializer in const declaration (1:14)
> 1 | export const version: string;
    |              ^^^^^^^^^^^^^^^

// Prettier 3.6.1
export const version: string;
```

##### Miscellaneous: Avoid closing files multiple times ([#17665](prettier/prettier#17665) by [@43081j](https://github.com/43081j))

When reading a file to infer the interpreter from a shebang, we use the
`n-readlines` library to read the first line in order to get the shebang.

This library closes files when it reaches EOF, and we later try close the same
files again. We now close files only if `n-readlines` did not already close
them.


## [v3.6.0](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#360)

[diff](prettier/prettier@3.5.3...3.6.0)

🔗 [Release Notes](https://prettier.io/blog/2025/06/23/3.6.0)
renovate bot added a commit to andrei-picus-tink/auto-renovate that referenced this pull request Jul 27, 2025
| datasource | package  | from  | to    |
| ---------- | -------- | ----- | ----- |
| npm        | prettier | 3.5.3 | 3.6.2 |


## [v3.6.2](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#362)

[diff](prettier/prettier@3.6.1...3.6.2)

##### Markdown: Add missing blank line around code block ([#17675](prettier/prettier#17675) by [@fisker](https://github.com/fisker))

<!-- prettier-ignore -->

````md
<!-- Input -->
1. Some text, and code block below, with newline after code block

   ```yaml
   ---
   foo: bar
   ```

   1. Another
   2. List

<!-- Prettier 3.6.1 -->
1. Some text, and code block below, with newline after code block

   ```yaml
   ---
   foo: bar
   ```
   1. Another
   2. List

<!-- Prettier 3.6.2 -->
1. Some text, and code block below, with newline after code block

   ```yaml
   ---
   foo: bar
   ```

   1. Another
   2. List
````


## [v3.6.1](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#361)

[diff](prettier/prettier@3.6.0...3.6.1)

##### TypeScript: Allow const without initializer ([#17650](prettier/prettier#17650), [#17654](prettier/prettier#17654) by [@fisker](https://github.com/fisker))

<!-- prettier-ignore -->

```jsx
// Input
export const version: string;

// Prettier 3.6.0 (--parser=babel-ts)
SyntaxError: Unexpected token (1:21)
> 1 | export const version: string;
    |                     ^

// Prettier 3.6.0 (--parser=oxc-ts)
SyntaxError: Missing initializer in const declaration (1:14)
> 1 | export const version: string;
    |              ^^^^^^^^^^^^^^^

// Prettier 3.6.1
export const version: string;
```

##### Miscellaneous: Avoid closing files multiple times ([#17665](prettier/prettier#17665) by [@43081j](https://github.com/43081j))

When reading a file to infer the interpreter from a shebang, we use the
`n-readlines` library to read the first line in order to get the shebang.

This library closes files when it reaches EOF, and we later try close the same
files again. We now close files only if `n-readlines` did not already close
them.


## [v3.6.0](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#360)

[diff](prettier/prettier@3.5.3...3.6.0)

🔗 [Release Notes](https://prettier.io/blog/2025/06/23/3.6.0)
renovate bot added a commit to andrei-picus-tink/auto-renovate that referenced this pull request Aug 4, 2025
| datasource | package  | from  | to    |
| ---------- | -------- | ----- | ----- |
| npm        | prettier | 3.5.3 | 3.6.2 |


## [v3.6.2](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#362)

[diff](prettier/prettier@3.6.1...3.6.2)

##### Markdown: Add missing blank line around code block ([#17675](prettier/prettier#17675) by [@fisker](https://github.com/fisker))

<!-- prettier-ignore -->

````md
<!-- Input -->
1. Some text, and code block below, with newline after code block

   ```yaml
   ---
   foo: bar
   ```

   1. Another
   2. List

<!-- Prettier 3.6.1 -->
1. Some text, and code block below, with newline after code block

   ```yaml
   ---
   foo: bar
   ```
   1. Another
   2. List

<!-- Prettier 3.6.2 -->
1. Some text, and code block below, with newline after code block

   ```yaml
   ---
   foo: bar
   ```

   1. Another
   2. List
````


## [v3.6.1](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#361)

[diff](prettier/prettier@3.6.0...3.6.1)

##### TypeScript: Allow const without initializer ([#17650](prettier/prettier#17650), [#17654](prettier/prettier#17654) by [@fisker](https://github.com/fisker))

<!-- prettier-ignore -->

```jsx
// Input
export const version: string;

// Prettier 3.6.0 (--parser=babel-ts)
SyntaxError: Unexpected token (1:21)
> 1 | export const version: string;
    |                     ^

// Prettier 3.6.0 (--parser=oxc-ts)
SyntaxError: Missing initializer in const declaration (1:14)
> 1 | export const version: string;
    |              ^^^^^^^^^^^^^^^

// Prettier 3.6.1
export const version: string;
```

##### Miscellaneous: Avoid closing files multiple times ([#17665](prettier/prettier#17665) by [@43081j](https://github.com/43081j))

When reading a file to infer the interpreter from a shebang, we use the
`n-readlines` library to read the first line in order to get the shebang.

This library closes files when it reaches EOF, and we later try close the same
files again. We now close files only if `n-readlines` did not already close
them.


## [v3.6.0](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#360)

[diff](prettier/prettier@3.5.3...3.6.0)

🔗 [Release Notes](https://prettier.io/blog/2025/06/23/3.6.0)
renovate bot added a commit to andrei-picus-tink/auto-renovate that referenced this pull request Aug 5, 2025
| datasource | package  | from  | to    |
| ---------- | -------- | ----- | ----- |
| npm        | prettier | 3.5.3 | 3.6.2 |


## [v3.6.2](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#362)

[diff](prettier/prettier@3.6.1...3.6.2)

##### Markdown: Add missing blank line around code block ([#17675](prettier/prettier#17675) by [@fisker](https://github.com/fisker))

<!-- prettier-ignore -->

````md
<!-- Input -->
1. Some text, and code block below, with newline after code block

   ```yaml
   ---
   foo: bar
   ```

   1. Another
   2. List

<!-- Prettier 3.6.1 -->
1. Some text, and code block below, with newline after code block

   ```yaml
   ---
   foo: bar
   ```
   1. Another
   2. List

<!-- Prettier 3.6.2 -->
1. Some text, and code block below, with newline after code block

   ```yaml
   ---
   foo: bar
   ```

   1. Another
   2. List
````


## [v3.6.1](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#361)

[diff](prettier/prettier@3.6.0...3.6.1)

##### TypeScript: Allow const without initializer ([#17650](prettier/prettier#17650), [#17654](prettier/prettier#17654) by [@fisker](https://github.com/fisker))

<!-- prettier-ignore -->

```jsx
// Input
export const version: string;

// Prettier 3.6.0 (--parser=babel-ts)
SyntaxError: Unexpected token (1:21)
> 1 | export const version: string;
    |                     ^

// Prettier 3.6.0 (--parser=oxc-ts)
SyntaxError: Missing initializer in const declaration (1:14)
> 1 | export const version: string;
    |              ^^^^^^^^^^^^^^^

// Prettier 3.6.1
export const version: string;
```

##### Miscellaneous: Avoid closing files multiple times ([#17665](prettier/prettier#17665) by [@43081j](https://github.com/43081j))

When reading a file to infer the interpreter from a shebang, we use the
`n-readlines` library to read the first line in order to get the shebang.

This library closes files when it reaches EOF, and we later try close the same
files again. We now close files only if `n-readlines` did not already close
them.


## [v3.6.0](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#360)

[diff](prettier/prettier@3.5.3...3.6.0)

🔗 [Release Notes](https://prettier.io/blog/2025/06/23/3.6.0)
renovate bot added a commit to andrei-picus-tink/auto-renovate that referenced this pull request Aug 6, 2025
| datasource | package  | from  | to    |
| ---------- | -------- | ----- | ----- |
| npm        | prettier | 3.5.3 | 3.6.2 |


## [v3.6.2](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#362)

[diff](prettier/prettier@3.6.1...3.6.2)

##### Markdown: Add missing blank line around code block ([#17675](prettier/prettier#17675) by [@fisker](https://github.com/fisker))

<!-- prettier-ignore -->

````md
<!-- Input -->
1. Some text, and code block below, with newline after code block

   ```yaml
   ---
   foo: bar
   ```

   1. Another
   2. List

<!-- Prettier 3.6.1 -->
1. Some text, and code block below, with newline after code block

   ```yaml
   ---
   foo: bar
   ```
   1. Another
   2. List

<!-- Prettier 3.6.2 -->
1. Some text, and code block below, with newline after code block

   ```yaml
   ---
   foo: bar
   ```

   1. Another
   2. List
````


## [v3.6.1](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#361)

[diff](prettier/prettier@3.6.0...3.6.1)

##### TypeScript: Allow const without initializer ([#17650](prettier/prettier#17650), [#17654](prettier/prettier#17654) by [@fisker](https://github.com/fisker))

<!-- prettier-ignore -->

```jsx
// Input
export const version: string;

// Prettier 3.6.0 (--parser=babel-ts)
SyntaxError: Unexpected token (1:21)
> 1 | export const version: string;
    |                     ^

// Prettier 3.6.0 (--parser=oxc-ts)
SyntaxError: Missing initializer in const declaration (1:14)
> 1 | export const version: string;
    |              ^^^^^^^^^^^^^^^

// Prettier 3.6.1
export const version: string;
```

##### Miscellaneous: Avoid closing files multiple times ([#17665](prettier/prettier#17665) by [@43081j](https://github.com/43081j))

When reading a file to infer the interpreter from a shebang, we use the
`n-readlines` library to read the first line in order to get the shebang.

This library closes files when it reaches EOF, and we later try close the same
files again. We now close files only if `n-readlines` did not already close
them.


## [v3.6.0](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#360)

[diff](prettier/prettier@3.5.3...3.6.0)

🔗 [Release Notes](https://prettier.io/blog/2025/06/23/3.6.0)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants








ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: https://redirect.github.com/prettier/prettier/pull/17650

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy