Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

fix(eslint-plugin): [prefer-optional-chain] ignorecheck option for most RHS of a chain#11272

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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Merged

Conversation

nayounsang
Copy link
Contributor

@nayounsangnayounsang commentedJun 5, 2025
edited
Loading

PR Checklist

Overview

  • Apply check option to LHSs except most RHS to fix the bug where void functions were not reported

omril1 reacted with rocket emoji
@typescript-eslint
Copy link
Contributor

Thanks for the PR,@nayounsang!

typescript-eslint is a 100% community driven project, and we are incredibly grateful that you are contributing to that community.

The core maintainers work on this in their personal time, so please understand that it may not be possible for them to review your work immediately.

Thanks again!


🙏Please, if you or your company is finding typescript-eslint valuable, help us sustain the project by sponsoring it transparently onhttps://opencollective.com/typescript-eslint.

@netlifyNetlify
Copy link

netlifybot commentedJun 5, 2025
edited
Loading

Deploy Preview fortypescript-eslint ready!

NameLink
🔨 Latest commitdee8b4d
🔍 Latest deploy loghttps://app.netlify.com/projects/typescript-eslint/deploys/688d42f4877c41000879fdf3
😎 Deploy Previewhttps://deploy-preview-11272--typescript-eslint.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
Lighthouse
Lighthouse
1 paths audited
Performance: 87 (🔴 down 11 from production)
Accessibility: 97 (no change from production)
Best Practices: 100 (no change from production)
SEO: 92 (no change from production)
PWA: 80 (no change from production)
View the detailed breakdown and full score reports

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

@nx-cloudNx Cloud
Copy link

nx-cloudbot commentedJun 5, 2025
edited
Loading

View yourCI Pipeline Execution ↗ for commitdee8b4d

CommandStatusDurationResult
nx test eslint-plugin --coverage=false✅ Succeeded5m 7sView ↗
nx run-many -t lint✅ Succeeded3m 16sView ↗
nx run-many -t typecheck✅ Succeeded2m 13sView ↗
nx test eslint-plugin-internal --coverage=false✅ Succeeded3sView ↗
nx test typescript-estree --coverage=false✅ Succeeded1sView ↗
nx run integration-tests:test✅ Succeeded3sView ↗
nx run types:build✅ Succeeded5sView ↗
nx run generate-configs✅ Succeeded6sView ↗
Additional runs (27)✅ Succeeded...View ↗

☁️Nx Cloud last updated this comment at2025-08-01 22:55:39 UTC

@nayounsangnayounsang changed the titlefix(prefer-optional-chain): should report case that can be converted to optional function call ?.()fix(eslint-plugin): should report case that can be converted to optional function call ?.() when using perfer-optional-chainJun 5, 2025
@nayounsangnayounsang marked this pull request as draftJune 5, 2025 07:38
@codecovCodecov
Copy link

codecovbot commentedJun 5, 2025
edited
Loading

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 90.86%. Comparing base (5b24864) to head (dee8b4d).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@##             main   #11272   +/-   ##=======================================  Coverage   90.86%   90.86%           =======================================  Files         503      503             Lines       51046    51048    +2       Branches     8418     8416    -2     =======================================+ Hits        46384    46386    +2  Misses       4648     4648             Partials       14       14
FlagCoverage Δ
unittest90.86% <100.00%> (+<0.01%)⬆️

Flags with carried forward coverage won't be shown.Click here to find out more.

Files with missing linesCoverage Δ
...efer-optional-chain-utils/gatherLogicalOperands.ts100.00% <100.00%> (ø)
🚀 New features to boost your workflow:
  • ❄️Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@nayounsangnayounsang changed the titlefix(eslint-plugin): should report case that can be converted to optional function call ?.() when using perfer-optional-chainfix(eslint-plugin): should report case that can be converted to optional void function call ?.() when using perfer-optional-chainJun 5, 2025
@nayounsangnayounsang marked this pull request as ready for reviewJune 5, 2025 08:11
@kirkwaiblingerkirkwaiblinger changed the titlefix(eslint-plugin): should report case that can be converted to optional void function call ?.() when using perfer-optional-chainfix(eslint-plugin): [prefer-optional-chain] should report case that can be converted to optional void function call ?.()Jun 6, 2025
@kirkwaiblingerkirkwaiblinger changed the titlefix(eslint-plugin): [prefer-optional-chain] should report case that can be converted to optional void function call ?.()fix(eslint-plugin): [prefer-optional-chain] should report case that can be converted to optional void function call?.()Jun 6, 2025
Copy link
Member

@kirkwaiblingerkirkwaiblinger left a comment

Choose a reason for hiding this comment

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

This generally looks great! Just one big question on the implementation approach we want to take. Looking forward to hearing your thoughts!

@kirkwaiblingerkirkwaiblinger added the awaiting responseIssues waiting for a reply from the OP or another party labelJun 6, 2025
@kirkwaiblinger
Copy link
Member

This PR has the effect that the following code is flagged (withcheckVoid enabled)

declareconstmaybeVoid:void|{x:()=>{some:'object'}};maybeVoid&&maybeVoid.x();

I'm not sure that that's what we want? I'd say instead the goal is that avoid-returning function call at the end of a chain whose return value isn't used should be reported regardless of thecheck* options.

In other words, as far as implementation - we're not looking to include possibly-void values in checked chainsexcept as the type of a function call at the end of the chain. It's not obvious to me that we need to create an option at all for this...

WDYT?

@kirkwaiblinger
Copy link
Member

kirkwaiblinger commentedJul 7, 2025
edited
Loading

I've realized — I think this is a much more general bug. Thecheck* options shouldnot apply to theright hand side member of a chain. Only theleft member. That is to say,

declareconstx:{a:string};// checkString: trueconsty=x&&x.a;// correctly reports// checkString: falseconsty=x&&x.a;// (BUG) doesn't report

So, if we generally fix the logic so that the type checking only applies to the LHS of a potential chain expressionx?.a, that should also automatically fix the reported bug regardingx?.a() as a special case.

@nayounsang
Copy link
ContributorAuthor

Then, I guess we can check it except for right most. I will finish the work on void and reply.

Copy link
Member

@kirkwaiblingerkirkwaiblinger left a comment

Choose a reason for hiding this comment

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

I think this is moving in the right direction, but the current state of the PR seems to be mostly extraneous changes. Let's clean it up to be focused on the changes related to the bug. Thanks!

Copy link
Member

@kirkwaiblingerkirkwaiblinger left a comment

Choose a reason for hiding this comment

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

(see review)

@kirkwaiblingerkirkwaiblinger added the awaiting responseIssues waiting for a reply from the OP or another party labelJul 14, 2025
@nayounsang
Copy link
ContributorAuthor

nayounsang commentedJul 16, 2025
edited
Loading

Oh, sorry. I misunderstood your review. Now I know what to do
I'll revert all of changes because, I changed so much and produce unnecessary codes.
Then, applying the logic to check except most RHS, I will focus on whether the issue case passes.
And if there is any problem, I will ask you. Thank you.

@nayounsangnayounsang changed the titlefix(eslint-plugin): [prefer-optional-chain] should report case that can be converted to optional void function call?.()fix(eslint-plugin): [prefer-optional-chain] ignorecheck option for most RHS of a chainJul 16, 2025
@kirkwaiblinger
Copy link
Member

Hey@nayounsang — is this ready for another review pass? If so, weask that you request review in the GUI so we know to take another look. If not, take your time and don't mind me! Just looked like it might be ready for another pass. Thanks!

@github-actionsgithub-actionsbot removed the awaiting responseIssues waiting for a reply from the OP or another party labelJul 20, 2025
kirkwaiblinger
kirkwaiblinger previously approved these changesJul 21, 2025
Copy link
Member

@kirkwaiblingerkirkwaiblinger left a comment

Choose a reason for hiding this comment

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

Thanks!

nayounsang reacted with thumbs up emoji
@kirkwaiblingerkirkwaiblinger added the 1 approval>=1 team member has approved this PR; we're now leaving it open for more reviews before we merge labelJul 21, 2025
@kirkwaiblingerkirkwaiblingerenabled auto-merge (squash)August 1, 2025 22:22
@kirkwaiblingerkirkwaiblinger merged commit757f9ee intotypescript-eslint:mainAug 1, 2025
61 checks passed
renovatebot added a commit to andrei-picus-tink/auto-renovate that referenced this pull requestAug 4, 2025
| datasource | package                          | from   | to     || ---------- | -------------------------------- | ------ | ------ || npm        | @typescript-eslint/eslint-plugin | 8.32.1 | 8.39.0 || npm        | @typescript-eslint/parser        | 8.32.1 | 8.39.0 |## [v8.39.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8390-2025-08-04)##### 🚀 Features- **eslint-plugin:** \[only-throw-error] support yield/await expressions ([#11417](typescript-eslint/typescript-eslint#11417))- **eslint-plugin:** add no-unnecessary-type-conversion to strict-type-checked ruleset ([#11427](typescript-eslint/typescript-eslint#11427))- update to TypeScript 5.9.2 ([#11445](typescript-eslint/typescript-eslint#11445))- **eslint-plugin:** \[naming-convention] add enumMember PascalCase default option ([#11127](typescript-eslint/typescript-eslint#11127))##### 🩹 Fixes- **eslint-plugin:** \[no-unsafe-assignment] add an `unsafeObjectPattern` message ([#11403](typescript-eslint/typescript-eslint#11403))- **eslint-plugin:** \[prefer-optional-chain] ignore `check` option for most RHS of a chain ([#11272](typescript-eslint/typescript-eslint#11272))##### ❤️ Thank You- Brad Zacher [@bradzacher](https://github.com/bradzacher)- James Garbutt [@43081j](https://github.com/43081j)- Kim Sang Du [@developer-bandi](https://github.com/developer-bandi)- Sasha Kondrashov- tao- Younsang Na [@nayounsang](https://github.com/nayounsang)You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.## [v8.38.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8380-2025-07-21)##### 🩹 Fixes- disallow extra properties in rule options ([#11397](typescript-eslint/typescript-eslint#11397))- **eslint-plugin:** \[consistent-generic-constructors] resolve conflict with `isolatedDeclarations` if enabled in `constructor` option ([#11351](typescript-eslint/typescript-eslint#11351))##### ❤️ Thank You- Andrew Kazakov [@andreww2012](https://github.com/andreww2012)- Younsang Na [@nayounsang](https://github.com/nayounsang)You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.## [v8.37.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8370-2025-07-14)##### 🩹 Fixes- **eslint-plugin:** \[unified-signatures] fix false positives for ignoreOverloadsWithDifferentJSDoc option ([#11381](typescript-eslint/typescript-eslint#11381))##### ❤️ Thank You- Yukihiro Hasegawa [@y-hsgw](https://github.com/y-hsgw)You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.## [v8.36.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8360-2025-07-07)This was a version bump only for eslint-plugin to align it with other projects, there were no code changes.You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.## [v8.35.1](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8351-2025-06-30)##### 🩹 Fixes- remove prettier from eslint-plugin ([#11339](typescript-eslint/typescript-eslint#11339))##### ❤️ Thank You- Abhijeet Singh [@cseas](https://github.com/cseas)You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.## [v8.35.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8350-2025-06-23)##### 🚀 Features- **eslint-plugin:** \[no-base-to-string] add checkUnknown Option ([#11128](typescript-eslint/typescript-eslint#11128))##### ❤️ Thank You- Kim Sang Du [@developer-bandi](https://github.com/developer-bandi)You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.## [v8.34.1](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8341-2025-06-16)This was a version bump only for eslint-plugin to align it with other projects, there were no code changes.You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.## [v8.34.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8340-2025-06-09)##### 🩹 Fixes-   **typescript-estree:** add validation to interface extends ([#11271](typescript-eslint/typescript-eslint#11271))##### ❤️ Thank You-   TaoYou can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.## [v8.33.1](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8331-2025-06-02)##### 🩹 Fixes-   exclude docs/ directory from eslint-plugin package ([#11251](typescript-eslint/typescript-eslint#11251))##### ❤️ Thank You-   roottoolYou can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.## [v8.33.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8330-2025-05-26)This was a version bump only for eslint-plugin to align it with other projects, there were no code changes.You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
renovatebot added a commit to andrei-picus-tink/auto-renovate that referenced this pull requestAug 5, 2025
| datasource | package                          | from   | to     || ---------- | -------------------------------- | ------ | ------ || npm        | @typescript-eslint/eslint-plugin | 8.32.1 | 8.39.0 || npm        | @typescript-eslint/parser        | 8.32.1 | 8.39.0 |## [v8.39.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8390-2025-08-04)##### 🚀 Features- **eslint-plugin:** \[only-throw-error] support yield/await expressions ([#11417](typescript-eslint/typescript-eslint#11417))- **eslint-plugin:** add no-unnecessary-type-conversion to strict-type-checked ruleset ([#11427](typescript-eslint/typescript-eslint#11427))- update to TypeScript 5.9.2 ([#11445](typescript-eslint/typescript-eslint#11445))- **eslint-plugin:** \[naming-convention] add enumMember PascalCase default option ([#11127](typescript-eslint/typescript-eslint#11127))##### 🩹 Fixes- **eslint-plugin:** \[no-unsafe-assignment] add an `unsafeObjectPattern` message ([#11403](typescript-eslint/typescript-eslint#11403))- **eslint-plugin:** \[prefer-optional-chain] ignore `check` option for most RHS of a chain ([#11272](typescript-eslint/typescript-eslint#11272))##### ❤️ Thank You- Brad Zacher [@bradzacher](https://github.com/bradzacher)- James Garbutt [@43081j](https://github.com/43081j)- Kim Sang Du [@developer-bandi](https://github.com/developer-bandi)- Sasha Kondrashov- tao- Younsang Na [@nayounsang](https://github.com/nayounsang)You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.## [v8.38.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8380-2025-07-21)##### 🩹 Fixes- disallow extra properties in rule options ([#11397](typescript-eslint/typescript-eslint#11397))- **eslint-plugin:** \[consistent-generic-constructors] resolve conflict with `isolatedDeclarations` if enabled in `constructor` option ([#11351](typescript-eslint/typescript-eslint#11351))##### ❤️ Thank You- Andrew Kazakov [@andreww2012](https://github.com/andreww2012)- Younsang Na [@nayounsang](https://github.com/nayounsang)You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.## [v8.37.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8370-2025-07-14)##### 🩹 Fixes- **eslint-plugin:** \[unified-signatures] fix false positives for ignoreOverloadsWithDifferentJSDoc option ([#11381](typescript-eslint/typescript-eslint#11381))##### ❤️ Thank You- Yukihiro Hasegawa [@y-hsgw](https://github.com/y-hsgw)You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.## [v8.36.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8360-2025-07-07)This was a version bump only for eslint-plugin to align it with other projects, there were no code changes.You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.## [v8.35.1](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8351-2025-06-30)##### 🩹 Fixes- remove prettier from eslint-plugin ([#11339](typescript-eslint/typescript-eslint#11339))##### ❤️ Thank You- Abhijeet Singh [@cseas](https://github.com/cseas)You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.## [v8.35.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8350-2025-06-23)##### 🚀 Features- **eslint-plugin:** \[no-base-to-string] add checkUnknown Option ([#11128](typescript-eslint/typescript-eslint#11128))##### ❤️ Thank You- Kim Sang Du [@developer-bandi](https://github.com/developer-bandi)You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.## [v8.34.1](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8341-2025-06-16)This was a version bump only for eslint-plugin to align it with other projects, there were no code changes.You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.## [v8.34.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8340-2025-06-09)##### 🩹 Fixes-   **typescript-estree:** add validation to interface extends ([#11271](typescript-eslint/typescript-eslint#11271))##### ❤️ Thank You-   TaoYou can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.## [v8.33.1](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8331-2025-06-02)##### 🩹 Fixes-   exclude docs/ directory from eslint-plugin package ([#11251](typescript-eslint/typescript-eslint#11251))##### ❤️ Thank You-   roottoolYou can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.## [v8.33.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8330-2025-05-26)This was a version bump only for eslint-plugin to align it with other projects, there were no code changes.You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
renovatebot added a commit to andrei-picus-tink/auto-renovate that referenced this pull requestAug 6, 2025
| datasource | package                          | from   | to     || ---------- | -------------------------------- | ------ | ------ || npm        | @typescript-eslint/eslint-plugin | 8.32.1 | 8.39.0 || npm        | @typescript-eslint/parser        | 8.32.1 | 8.39.0 |## [v8.39.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8390-2025-08-04)##### 🚀 Features- **eslint-plugin:** \[only-throw-error] support yield/await expressions ([#11417](typescript-eslint/typescript-eslint#11417))- **eslint-plugin:** add no-unnecessary-type-conversion to strict-type-checked ruleset ([#11427](typescript-eslint/typescript-eslint#11427))- update to TypeScript 5.9.2 ([#11445](typescript-eslint/typescript-eslint#11445))- **eslint-plugin:** \[naming-convention] add enumMember PascalCase default option ([#11127](typescript-eslint/typescript-eslint#11127))##### 🩹 Fixes- **eslint-plugin:** \[no-unsafe-assignment] add an `unsafeObjectPattern` message ([#11403](typescript-eslint/typescript-eslint#11403))- **eslint-plugin:** \[prefer-optional-chain] ignore `check` option for most RHS of a chain ([#11272](typescript-eslint/typescript-eslint#11272))##### ❤️ Thank You- Brad Zacher [@bradzacher](https://github.com/bradzacher)- James Garbutt [@43081j](https://github.com/43081j)- Kim Sang Du [@developer-bandi](https://github.com/developer-bandi)- Sasha Kondrashov- tao- Younsang Na [@nayounsang](https://github.com/nayounsang)You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.## [v8.38.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8380-2025-07-21)##### 🩹 Fixes- disallow extra properties in rule options ([#11397](typescript-eslint/typescript-eslint#11397))- **eslint-plugin:** \[consistent-generic-constructors] resolve conflict with `isolatedDeclarations` if enabled in `constructor` option ([#11351](typescript-eslint/typescript-eslint#11351))##### ❤️ Thank You- Andrew Kazakov [@andreww2012](https://github.com/andreww2012)- Younsang Na [@nayounsang](https://github.com/nayounsang)You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.## [v8.37.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8370-2025-07-14)##### 🩹 Fixes- **eslint-plugin:** \[unified-signatures] fix false positives for ignoreOverloadsWithDifferentJSDoc option ([#11381](typescript-eslint/typescript-eslint#11381))##### ❤️ Thank You- Yukihiro Hasegawa [@y-hsgw](https://github.com/y-hsgw)You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.## [v8.36.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8360-2025-07-07)This was a version bump only for eslint-plugin to align it with other projects, there were no code changes.You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.## [v8.35.1](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8351-2025-06-30)##### 🩹 Fixes- remove prettier from eslint-plugin ([#11339](typescript-eslint/typescript-eslint#11339))##### ❤️ Thank You- Abhijeet Singh [@cseas](https://github.com/cseas)You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.## [v8.35.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8350-2025-06-23)##### 🚀 Features- **eslint-plugin:** \[no-base-to-string] add checkUnknown Option ([#11128](typescript-eslint/typescript-eslint#11128))##### ❤️ Thank You- Kim Sang Du [@developer-bandi](https://github.com/developer-bandi)You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.## [v8.34.1](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8341-2025-06-16)This was a version bump only for eslint-plugin to align it with other projects, there were no code changes.You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.## [v8.34.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8340-2025-06-09)##### 🩹 Fixes-   **typescript-estree:** add validation to interface extends ([#11271](typescript-eslint/typescript-eslint#11271))##### ❤️ Thank You-   TaoYou can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.## [v8.33.1](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8331-2025-06-02)##### 🩹 Fixes-   exclude docs/ directory from eslint-plugin package ([#11251](typescript-eslint/typescript-eslint#11251))##### ❤️ Thank You-   roottoolYou can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.## [v8.33.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8330-2025-05-26)This was a version bump only for eslint-plugin to align it with other projects, there were no code changes.You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
renovatebot added a commit to andrei-picus-tink/auto-renovate that referenced this pull requestAug 7, 2025
| datasource | package                          | from   | to     || ---------- | -------------------------------- | ------ | ------ || npm        | @typescript-eslint/eslint-plugin | 8.32.1 | 8.39.0 || npm        | @typescript-eslint/parser        | 8.32.1 | 8.39.0 |## [v8.39.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8390-2025-08-04)##### 🚀 Features- **eslint-plugin:** \[only-throw-error] support yield/await expressions ([#11417](typescript-eslint/typescript-eslint#11417))- **eslint-plugin:** add no-unnecessary-type-conversion to strict-type-checked ruleset ([#11427](typescript-eslint/typescript-eslint#11427))- update to TypeScript 5.9.2 ([#11445](typescript-eslint/typescript-eslint#11445))- **eslint-plugin:** \[naming-convention] add enumMember PascalCase default option ([#11127](typescript-eslint/typescript-eslint#11127))##### 🩹 Fixes- **eslint-plugin:** \[no-unsafe-assignment] add an `unsafeObjectPattern` message ([#11403](typescript-eslint/typescript-eslint#11403))- **eslint-plugin:** \[prefer-optional-chain] ignore `check` option for most RHS of a chain ([#11272](typescript-eslint/typescript-eslint#11272))##### ❤️ Thank You- Brad Zacher [@bradzacher](https://github.com/bradzacher)- James Garbutt [@43081j](https://github.com/43081j)- Kim Sang Du [@developer-bandi](https://github.com/developer-bandi)- Sasha Kondrashov- tao- Younsang Na [@nayounsang](https://github.com/nayounsang)You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.## [v8.38.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8380-2025-07-21)##### 🩹 Fixes- disallow extra properties in rule options ([#11397](typescript-eslint/typescript-eslint#11397))- **eslint-plugin:** \[consistent-generic-constructors] resolve conflict with `isolatedDeclarations` if enabled in `constructor` option ([#11351](typescript-eslint/typescript-eslint#11351))##### ❤️ Thank You- Andrew Kazakov [@andreww2012](https://github.com/andreww2012)- Younsang Na [@nayounsang](https://github.com/nayounsang)You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.## [v8.37.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8370-2025-07-14)##### 🩹 Fixes- **eslint-plugin:** \[unified-signatures] fix false positives for ignoreOverloadsWithDifferentJSDoc option ([#11381](typescript-eslint/typescript-eslint#11381))##### ❤️ Thank You- Yukihiro Hasegawa [@y-hsgw](https://github.com/y-hsgw)You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.## [v8.36.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8360-2025-07-07)This was a version bump only for eslint-plugin to align it with other projects, there were no code changes.You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.## [v8.35.1](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8351-2025-06-30)##### 🩹 Fixes- remove prettier from eslint-plugin ([#11339](typescript-eslint/typescript-eslint#11339))##### ❤️ Thank You- Abhijeet Singh [@cseas](https://github.com/cseas)You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.## [v8.35.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8350-2025-06-23)##### 🚀 Features- **eslint-plugin:** \[no-base-to-string] add checkUnknown Option ([#11128](typescript-eslint/typescript-eslint#11128))##### ❤️ Thank You- Kim Sang Du [@developer-bandi](https://github.com/developer-bandi)You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.## [v8.34.1](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8341-2025-06-16)This was a version bump only for eslint-plugin to align it with other projects, there were no code changes.You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.## [v8.34.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8340-2025-06-09)##### 🩹 Fixes-   **typescript-estree:** add validation to interface extends ([#11271](typescript-eslint/typescript-eslint#11271))##### ❤️ Thank You-   TaoYou can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.## [v8.33.1](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8331-2025-06-02)##### 🩹 Fixes-   exclude docs/ directory from eslint-plugin package ([#11251](typescript-eslint/typescript-eslint#11251))##### ❤️ Thank You-   roottoolYou can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.## [v8.33.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8330-2025-05-26)This was a version bump only for eslint-plugin to align it with other projects, there were no code changes.You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
renovatebot added a commit to andrei-picus-tink/auto-renovate that referenced this pull requestAug 8, 2025
| datasource | package                          | from   | to     || ---------- | -------------------------------- | ------ | ------ || npm        | @typescript-eslint/eslint-plugin | 8.32.1 | 8.39.0 || npm        | @typescript-eslint/parser        | 8.32.1 | 8.39.0 |## [v8.39.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8390-2025-08-04)##### 🚀 Features- **eslint-plugin:** \[only-throw-error] support yield/await expressions ([#11417](typescript-eslint/typescript-eslint#11417))- **eslint-plugin:** add no-unnecessary-type-conversion to strict-type-checked ruleset ([#11427](typescript-eslint/typescript-eslint#11427))- update to TypeScript 5.9.2 ([#11445](typescript-eslint/typescript-eslint#11445))- **eslint-plugin:** \[naming-convention] add enumMember PascalCase default option ([#11127](typescript-eslint/typescript-eslint#11127))##### 🩹 Fixes- **eslint-plugin:** \[no-unsafe-assignment] add an `unsafeObjectPattern` message ([#11403](typescript-eslint/typescript-eslint#11403))- **eslint-plugin:** \[prefer-optional-chain] ignore `check` option for most RHS of a chain ([#11272](typescript-eslint/typescript-eslint#11272))##### ❤️ Thank You- Brad Zacher [@bradzacher](https://github.com/bradzacher)- James Garbutt [@43081j](https://github.com/43081j)- Kim Sang Du [@developer-bandi](https://github.com/developer-bandi)- Sasha Kondrashov- tao- Younsang Na [@nayounsang](https://github.com/nayounsang)You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.## [v8.38.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8380-2025-07-21)##### 🩹 Fixes- disallow extra properties in rule options ([#11397](typescript-eslint/typescript-eslint#11397))- **eslint-plugin:** \[consistent-generic-constructors] resolve conflict with `isolatedDeclarations` if enabled in `constructor` option ([#11351](typescript-eslint/typescript-eslint#11351))##### ❤️ Thank You- Andrew Kazakov [@andreww2012](https://github.com/andreww2012)- Younsang Na [@nayounsang](https://github.com/nayounsang)You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.## [v8.37.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8370-2025-07-14)##### 🩹 Fixes- **eslint-plugin:** \[unified-signatures] fix false positives for ignoreOverloadsWithDifferentJSDoc option ([#11381](typescript-eslint/typescript-eslint#11381))##### ❤️ Thank You- Yukihiro Hasegawa [@y-hsgw](https://github.com/y-hsgw)You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.## [v8.36.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8360-2025-07-07)This was a version bump only for eslint-plugin to align it with other projects, there were no code changes.You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.## [v8.35.1](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8351-2025-06-30)##### 🩹 Fixes- remove prettier from eslint-plugin ([#11339](typescript-eslint/typescript-eslint#11339))##### ❤️ Thank You- Abhijeet Singh [@cseas](https://github.com/cseas)You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.## [v8.35.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8350-2025-06-23)##### 🚀 Features- **eslint-plugin:** \[no-base-to-string] add checkUnknown Option ([#11128](typescript-eslint/typescript-eslint#11128))##### ❤️ Thank You- Kim Sang Du [@developer-bandi](https://github.com/developer-bandi)You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.## [v8.34.1](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8341-2025-06-16)This was a version bump only for eslint-plugin to align it with other projects, there were no code changes.You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.## [v8.34.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8340-2025-06-09)##### 🩹 Fixes-   **typescript-estree:** add validation to interface extends ([#11271](typescript-eslint/typescript-eslint#11271))##### ❤️ Thank You-   TaoYou can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.## [v8.33.1](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8331-2025-06-02)##### 🩹 Fixes-   exclude docs/ directory from eslint-plugin package ([#11251](typescript-eslint/typescript-eslint#11251))##### ❤️ Thank You-   roottoolYou can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.## [v8.33.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8330-2025-05-26)This was a version bump only for eslint-plugin to align it with other projects, there were no code changes.You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
@github-actionsgithub-actionsbot locked asresolvedand limited conversation to collaboratorsAug 9, 2025
Sign up for freeto subscribe to this conversation on GitHub. Already have an account?Sign in.
Reviewers

@kirkwaiblingerkirkwaiblingerkirkwaiblinger approved these changes

Assignees
No one assigned
Labels
1 approval>=1 team member has approved this PR; we're now leaving it open for more reviews before we merge
Projects
None yet
Milestone
No milestone
Development

Successfully merging this pull request may close these issues.

Bug: [prefer-optional-chain] should report case that can be converted to optional function call?.()
2 participants
@nayounsang@kirkwaiblinger

[8]ページ先頭

©2009-2025 Movatter.jp