fix(eslint-plugin): [prefer-regexp-exec] avoid fixing unknown RegExp flags#12161
Conversation
|
Thanks for the PR, @teee32! 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 on https://opencollective.com/typescript-eslint. |
✅ Deploy Preview for typescript-eslint ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
|
View your CI Pipeline Execution ↗ for commit 009d3cd
☁️ Nx Cloud last updated this comment at |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #12161 +/- ##
=======================================
Coverage 86.52% 86.52%
=======================================
Files 501 501
Lines 16274 16277 +3
Branches 5068 5069 +1
=======================================
+ Hits 14081 14084 +3
Misses 1506 1506
Partials 687 687
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
JoshuaKGoldberg
left a comment
There was a problem hiding this comment.
Looking good, thanks! ✨
|
Btw @teee32 please don't send a large AI-generated PR body - especially one that partially clobbers the PR template as this one did. They're unnecessarily verbose. https://typescript-eslint.io/contributing/ai-policy I went ahead and trimmed the body down so we can merge it today. |
5a9bd36
into
typescript-eslint:main
I'm very sorry for the trouble. I will improve.🙂 |
| datasource | package | from | to | | ---------- | -------------------------------- | ------ | ------ | | npm | @typescript-eslint/eslint-plugin | 8.56.0 | 8.58.0 | | npm | @typescript-eslint/parser | 8.56.0 | 8.58.0 | ## [v8.58.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8580-2026-03-30) ##### 🚀 Features - support TypeScript 6 ([#12124](typescript-eslint/typescript-eslint#12124)) ##### 🩹 Fixes - **eslint-plugin:** \[prefer-regexp-exec] avoid fixing unknown RegExp flags ([#12161](typescript-eslint/typescript-eslint#12161)) - **eslint-plugin:** \[no-extraneous-class] handle index signatures ([#12142](typescript-eslint/typescript-eslint#12142)) - **eslint-plugin:** crash in `no-unnecessary-type-arguments` ([#12163](typescript-eslint/typescript-eslint#12163)) ##### ❤️ Thank You - ej shafran [@ej-shafran](https://github.com/ej-shafran) - Evyatar Daud [@StyleShit](https://github.com/StyleShit) - GG ZIBLAKING - milkboy2564 [@SeolJaeHyeok](https://github.com/SeolJaeHyeok) - teee32 [@teee32](https://github.com/teee32) See [GitHub Releases](https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.58.0) for more information. You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. ## [v8.57.2](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8572-2026-03-23) ##### 🩹 Fixes - **eslint-plugin:** \[prefer-readonly-parameter-types] preserve type alias infomation ([#11954](typescript-eslint/typescript-eslint#11954)) - **eslint-plugin:** \[no-useless-default-assignment] skip reporting false positives for unresolved type parameters ([#12127](typescript-eslint/typescript-eslint#12127)) - **eslint-plugin:** \[no-unsafe-return] false positive on unwrapping generic ([#12125](typescript-eslint/typescript-eslint#12125)) - **eslint-plugin:** \[no-restricted-types] flag banned generics in extends or implements ([#12120](typescript-eslint/typescript-eslint#12120)) - **eslint-plugin:** \[array-type] ignore Array and ReadonlyArray without type arguments ([#11971](typescript-eslint/typescript-eslint#11971)) - **eslint-plugin:** \[prefer-optional-chain] remove dangling closing parenthesis ([#11865](typescript-eslint/typescript-eslint#11865)) ##### ❤️ Thank You - Kirk Waiblinger [@kirkwaiblinger](https://github.com/kirkwaiblinger) - Konv Suu - mdm317 - Newton Yuan [@NewtonYuan](https://github.com/NewtonYuan) - SungHyun627 [@SungHyun627](https://github.com/SungHyun627) - Tamashoo [@Tamashoo](https://github.com/Tamashoo) See [GitHub Releases](https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.57.2) for more information. You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. ## [v8.57.1](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8571-2026-03-16) ##### 🩹 Fixes - **eslint-plugin:** \[prefer-optional-chain] no report for property on intersection type ([#12126](typescript-eslint/typescript-eslint#12126)) ##### ❤️ Thank You - Newton Yuan [@NewtonYuan](https://github.com/NewtonYuan) See [GitHub Releases](https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.57.1) for more information. You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. ## [v8.57.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8570-2026-03-09) ##### 🚀 Features - **eslint-plugin:** \[no-unnecessary-condition] allow literal loop conditions in for/do loops ([#12080](typescript-eslint/typescript-eslint#12080)) ##### 🩹 Fixes - **eslint-plugin:** \[no-base-to-string] fix false positive for toString with overloads ([#12089](typescript-eslint/typescript-eslint#12089)) - **eslint-plugin:** \[prefer-promise-reject-errors] add allow `TypeOrValueSpecifier` to prefer-promise-reject-errors ([#12094](typescript-eslint/typescript-eslint#12094)) - **typescript-estree:** if the template literal is tagged and the text has an invalid escape, `cooked` will be `null` ([#11355](typescript-eslint/typescript-eslint#11355)) - **eslint-plugin:** guard against negative paramIndex in no-useless-default-assignment ([#12077](typescript-eslint/typescript-eslint#12077)) - **eslint-plugin:** handle statically analyzable computed keys in prefer-readonly ([#12079](typescript-eslint/typescript-eslint#12079)) - **eslint-plugin:** \[strict-void-return] false positives with overloads ([#12055](typescript-eslint/typescript-eslint#12055)) ##### ❤️ Thank You - Brad Zacher [@bradzacher](https://github.com/bradzacher) - Brian Schlenker [@bschlenk](https://github.com/bschlenk) - Evyatar Daud [@StyleShit](https://github.com/StyleShit) - James Henry [@JamesHenry](https://github.com/JamesHenry) - Josh Goldberg - Kirk Waiblinger [@kirkwaiblinger](https://github.com/kirkwaiblinger) - Moses Odutusin [@thebolarin](https://github.com/thebolarin) - Newton Yuan [@NewtonYuan](https://github.com/NewtonYuan) - SungHyun627 [@SungHyun627](https://github.com/SungHyun627) - Younsang Na [@nayounsang](https://github.com/nayounsang) See [GitHub Releases](https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.57.0) for more information. You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. ## [v8.56.1](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8561-2026-02-23) This was a version bump only for eslint-plugin to align it with other projects, there were no code changes. See [GitHub Releases](https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.56.1) for more information. You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website.
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [@eslint/compat](https://github.com/eslint/rewrite/tree/main/packages/compat#readme) ([source](https://github.com/eslint/rewrite/tree/HEAD/packages/compat)) | [`2.0.3` → `2.0.4`](https://renovatebot.com/diffs/npm/@eslint%2fcompat/2.0.3/2.0.4) |  |  | | [@rollup/rollup-linux-x64-gnu](https://rollupjs.org/) ([source](https://github.com/rollup/rollup)) | [`4.60.0` → `4.60.1`](https://renovatebot.com/diffs/npm/@rollup%2frollup-linux-x64-gnu/4.60.0/4.60.1) |  |  | | [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node) ([source](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)) | [`24.12.0` → `24.12.2`](https://renovatebot.com/diffs/npm/@types%2fnode/24.12.0/24.12.2) |  |  | | [@typescript-eslint/eslint-plugin](https://typescript-eslint.io/packages/eslint-plugin) ([source](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin)) | [`8.57.2` → `8.58.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/8.57.2/8.58.0) |  |  | | [@typescript-eslint/parser](https://typescript-eslint.io/packages/parser) ([source](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser)) | [`8.57.2` → `8.58.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/8.57.2/8.58.0) |  |  | | [eslint](https://eslint.org) ([source](https://github.com/eslint/eslint)) | [`10.1.0` → `10.2.0`](https://renovatebot.com/diffs/npm/eslint/10.1.0/10.2.0) |  |  | | [rollup](https://rollupjs.org/) ([source](https://github.com/rollup/rollup)) | [`4.60.0` → `4.60.1`](https://renovatebot.com/diffs/npm/rollup/4.60.0/4.60.1) |  |  | | [ts-jest](https://kulshekhar.github.io/ts-jest) ([source](https://github.com/kulshekhar/ts-jest)) | [`29.4.6` → `29.4.9`](https://renovatebot.com/diffs/npm/ts-jest/29.4.6/29.4.9) |  |  | --- ### Release Notes <details> <summary>eslint/rewrite (@​eslint/compat)</summary> ### [`v2.0.4`](https://github.com/eslint/rewrite/blob/HEAD/packages/compat/CHANGELOG.md#204-2026-04-03) [Compare Source](eslint/rewrite@41eb19f...fe114ee) ##### Dependencies - The following workspace dependencies were updated - dependencies - [@​eslint/core](https://github.com/eslint/core) bumped from ^1.1.1 to ^1.2.0 </details> <details> <summary>rollup/rollup (@​rollup/rollup-linux-x64-gnu)</summary> ### [`v4.60.1`](https://github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4601) [Compare Source](rollup/rollup@v4.60.0...v4.60.1) *2026-03-30* ##### Bug Fixes - Resolve a situation where side effect imports could be dropped due to a caching issue ([#​6286](rollup/rollup#6286)) ##### Pull Requests - [#​6286](rollup/rollup#6286): fix: skip dropping side-effects on namespaceReexportsByName cache hit ([#​6274](rollup/rollup#6274)) ([@​littlegrayss](https://github.com/littlegrayss), [@​TrickyPi](https://github.com/TrickyPi)) - [#​6317](rollup/rollup#6317): chore(deps): pin dependencies ([@​renovate](https://github.com/renovate)\[bot], [@​lukastaegert](https://github.com/lukastaegert)) - [#​6318](rollup/rollup#6318): chore(deps): update msys2/setup-msys2 digest to [`cafece8`](rollup/rollup@cafece8) ([@​renovate](https://github.com/renovate)\[bot], [@​lukastaegert](https://github.com/lukastaegert)) - [#​6319](rollup/rollup#6319): chore(deps): update minor/patch updates ([@​renovate](https://github.com/renovate)\[bot], [@​lukastaegert](https://github.com/lukastaegert)) - [#​6320](rollup/rollup#6320): chore(deps): pin dependency typescript to v5 ([@​renovate](https://github.com/renovate)\[bot], [@​lukastaegert](https://github.com/lukastaegert)) - [#​6321](rollup/rollup#6321): chore(deps): update openharmony-rs/setup-ohos-sdk action to v1 ([@​renovate](https://github.com/renovate)\[bot], [@​lukastaegert](https://github.com/lukastaegert)) - [#​6322](rollup/rollup#6322): fix(deps): update swc monorepo (major) ([@​renovate](https://github.com/renovate)\[bot], [@​lukastaegert](https://github.com/lukastaegert)) - [#​6323](rollup/rollup#6323): chore(deps): lock file maintenance ([@​renovate](https://github.com/renovate)\[bot]) - [#​6324](rollup/rollup#6324): chore(deps): lock file maintenance ([@​renovate](https://github.com/renovate)\[bot], [@​lukastaegert](https://github.com/lukastaegert)) </details> <details> <summary>typescript-eslint/typescript-eslint (@​typescript-eslint/eslint-plugin)</summary> ### [`v8.58.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8580-2026-03-30) [Compare Source](typescript-eslint/typescript-eslint@v8.57.2...v8.58.0) ##### 🚀 Features - support TypeScript 6 ([#​12124](typescript-eslint/typescript-eslint#12124)) ##### 🩹 Fixes - **eslint-plugin:** \[prefer-regexp-exec] avoid fixing unknown RegExp flags ([#​12161](typescript-eslint/typescript-eslint#12161)) - **eslint-plugin:** \[no-extraneous-class] handle index signatures ([#​12142](typescript-eslint/typescript-eslint#12142)) - **eslint-plugin:** crash in `no-unnecessary-type-arguments` ([#​12163](typescript-eslint/typescript-eslint#12163)) ##### ❤️ Thank You - ej shafran [@​ej-shafran](https://github.com/ej-shafran) - Evyatar Daud [@​StyleShit](https://github.com/StyleShit) - GG ZIBLAKING - milkboy2564 [@​SeolJaeHyeok](https://github.com/SeolJaeHyeok) - teee32 [@​teee32](https://github.com/teee32) See [GitHub Releases](https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.58.0) for more information. You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. </details> <details> <summary>typescript-eslint/typescript-eslint (@​typescript-eslint/parser)</summary> ### [`v8.58.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#8580-2026-03-30) [Compare Source](typescript-eslint/typescript-eslint@v8.57.2...v8.58.0) ##### 🚀 Features - support TypeScript 6 ([#​12124](typescript-eslint/typescript-eslint#12124)) ##### ❤️ Thank You - Evyatar Daud [@​StyleShit](https://github.com/StyleShit) See [GitHub Releases](https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.58.0) for more information. You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. </details> <details> <summary>eslint/eslint (eslint)</summary> ### [`v10.2.0`](https://github.com/eslint/eslint/releases/tag/v10.2.0) [Compare Source](eslint/eslint@v10.1.0...v10.2.0) #### Features - [`586ec2f`](eslint/eslint@586ec2f) feat: Add `meta.languages` support to rules ([#​20571](eslint/eslint#20571)) (Copilot) - [`14207de`](eslint/eslint@14207de) feat: add `Temporal` to `no-obj-calls` ([#​20675](eslint/eslint#20675)) (Pixel998) - [`bbb2c93`](eslint/eslint@bbb2c93) feat: add Temporal to ES2026 globals ([#​20672](eslint/eslint#20672)) (Pixel998) #### Bug Fixes - [`542cb3e`](eslint/eslint@542cb3e) fix: update first-party dependencies ([#​20714](eslint/eslint#20714)) (Francesco Trotta) #### Documentation - [`a2af743`](eslint/eslint@a2af743) docs: add `language` to configuration objects ([#​20712](eslint/eslint#20712)) (Francesco Trotta) - [`845f23f`](eslint/eslint@845f23f) docs: Update README (GitHub Actions Bot) - [`5fbcf59`](eslint/eslint@5fbcf59) docs: remove `sourceType` from ts playground link ([#​20477](eslint/eslint#20477)) (Tanuj Kanti) - [`8702a47`](eslint/eslint@8702a47) docs: Update README (GitHub Actions Bot) - [`ddeaded`](eslint/eslint@ddeaded) docs: Update README (GitHub Actions Bot) - [`2b44966`](eslint/eslint@2b44966) docs: add Major Releases section to Manage Releases ([#​20269](eslint/eslint#20269)) (Milos Djermanovic) - [`eab65c7`](eslint/eslint@eab65c7) docs: update `eslint` versions in examples ([#​20664](eslint/eslint#20664)) (루밀LuMir) - [`3e4a299`](eslint/eslint@3e4a299) docs: update ESM Dependencies policies with note for own-usage packages ([#​20660](eslint/eslint#20660)) (Milos Djermanovic) #### Chores - [`8120e30`](eslint/eslint@8120e30) refactor: extract no unmodified loop condition ([#​20679](eslint/eslint#20679)) (kuldeep kumar) - [`46e8469`](eslint/eslint@46e8469) chore: update dependency markdownlint-cli2 to ^0.22.0 ([#​20697](eslint/eslint#20697)) (renovate\[bot]) - [`01ed3aa`](eslint/eslint@01ed3aa) test: add unit tests for unicode utilities ([#​20622](eslint/eslint#20622)) (Manish chaudhary) - [`811f493`](eslint/eslint@811f493) ci: remove `--legacy-peer-deps` from types integration tests ([#​20667](eslint/eslint#20667)) (Milos Djermanovic) - [`6b86fcf`](eslint/eslint@6b86fcf) chore: update dependency npm-run-all2 to v8 ([#​20663](eslint/eslint#20663)) (renovate\[bot]) - [`632c4f8`](eslint/eslint@632c4f8) chore: add `prettier` update commit to `.git-blame-ignore-revs` ([#​20662](eslint/eslint#20662)) (루밀LuMir) - [`b0b0f21`](eslint/eslint@b0b0f21) chore: update dependency eslint-plugin-regexp to ^3.1.0 ([#​20659](eslint/eslint#20659)) (Milos Djermanovic) - [`228a2dd`](eslint/eslint@228a2dd) chore: update dependency eslint-plugin-eslint-plugin to ^7.3.2 ([#​20661](eslint/eslint#20661)) (Milos Djermanovic) - [`3ab4d7e`](eslint/eslint@3ab4d7e) test: Add tests for eslintrc-style keys ([#​20645](eslint/eslint#20645)) (kuldeep kumar) </details> <details> <summary>kulshekhar/ts-jest (ts-jest)</summary> ### [`v29.4.9`](https://github.com/kulshekhar/ts-jest/releases/tag/v29.4.9) [Compare Source](kulshekhar/ts-jest@v29.4.8...v29.4.9) Please refer to [CHANGELOG.md](https://github.com/kulshekhar/ts-jest/blob/main/CHANGELOG.md) for details. ### [`v29.4.8`](kulshekhar/ts-jest@v29.4.7...v29.4.8) [Compare Source](kulshekhar/ts-jest@v29.4.7...v29.4.8) ### [`v29.4.7`](https://github.com/kulshekhar/ts-jest/blob/HEAD/CHANGELOG.md#2947-2026-04-01) [Compare Source](kulshekhar/ts-jest@v29.4.6...v29.4.7) ##### Features - support TypeScript v6 ([eda517d](kulshekhar/ts-jest@eda517d)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 6am on monday" in timezone Europe/Amsterdam, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My44Ni4wIiwidXBkYXRlZEluVmVyIjoiNDMuODYuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9taW5vciIsInR5cGUvcGF0Y2giXX0=--> Co-authored-by: Bernd Schorgers <me@bjw-s.dev> Reviewed-on: https://git.bjw-s.dev/bjw-s/action-changed-files/pulls/8 Co-authored-by: renovate[bot] <renovate-bot@noreply.git.bjw-s.dev> Co-committed-by: renovate[bot] <renovate-bot@noreply.git.bjw-s.dev>
| datasource | package | from | to | | ---------- | -------------------------------- | ------ | ------ | | npm | @typescript-eslint/eslint-plugin | 8.56.0 | 8.58.2 | | npm | @typescript-eslint/parser | 8.56.0 | 8.58.2 | ## [v8.58.2](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8582-2026-04-13) ##### 🩹 Fixes - **eslint-plugin:** \[no-unnecessary-condition] use assignability checks in checkTypePredicates ([#12147](typescript-eslint/typescript-eslint#12147)) - remove tsbuildinfo cache file from published packages ([#12187](typescript-eslint/typescript-eslint#12187)) ##### ❤️ Thank You - Abhijeet Singh [@cseas](https://github.com/cseas) - 송재욱 See [GitHub Releases](https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.58.2) for more information. You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. ## [v8.58.1](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8581-2026-04-08) ##### 🩹 Fixes - **eslint-plugin:** \[no-unused-vars] fix false negative for type predicate parameter ([#12004](typescript-eslint/typescript-eslint#12004)) ##### ❤️ Thank You - MinJae [@Ju-MINJAE](https://github.com/Ju-MINJAE) See [GitHub Releases](https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.58.1) for more information. You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. ## [v8.58.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8580-2026-03-30) ##### 🚀 Features - support TypeScript 6 ([#12124](typescript-eslint/typescript-eslint#12124)) ##### 🩹 Fixes - **eslint-plugin:** \[prefer-regexp-exec] avoid fixing unknown RegExp flags ([#12161](typescript-eslint/typescript-eslint#12161)) - **eslint-plugin:** \[no-extraneous-class] handle index signatures ([#12142](typescript-eslint/typescript-eslint#12142)) - **eslint-plugin:** crash in `no-unnecessary-type-arguments` ([#12163](typescript-eslint/typescript-eslint#12163)) ##### ❤️ Thank You - ej shafran [@ej-shafran](https://github.com/ej-shafran) - Evyatar Daud [@StyleShit](https://github.com/StyleShit) - GG ZIBLAKING - milkboy2564 [@SeolJaeHyeok](https://github.com/SeolJaeHyeok) - teee32 [@teee32](https://github.com/teee32) See [GitHub Releases](https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.58.0) for more information. You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. ## [v8.57.2](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8572-2026-03-23) ##### 🩹 Fixes - **eslint-plugin:** \[prefer-readonly-parameter-types] preserve type alias infomation ([#11954](typescript-eslint/typescript-eslint#11954)) - **eslint-plugin:** \[no-useless-default-assignment] skip reporting false positives for unresolved type parameters ([#12127](typescript-eslint/typescript-eslint#12127)) - **eslint-plugin:** \[no-unsafe-return] false positive on unwrapping generic ([#12125](typescript-eslint/typescript-eslint#12125)) - **eslint-plugin:** \[no-restricted-types] flag banned generics in extends or implements ([#12120](typescript-eslint/typescript-eslint#12120)) - **eslint-plugin:** \[array-type] ignore Array and ReadonlyArray without type arguments ([#11971](typescript-eslint/typescript-eslint#11971)) - **eslint-plugin:** \[prefer-optional-chain] remove dangling closing parenthesis ([#11865](typescript-eslint/typescript-eslint#11865)) ##### ❤️ Thank You - Kirk Waiblinger [@kirkwaiblinger](https://github.com/kirkwaiblinger) - Konv Suu - mdm317 - Newton Yuan [@NewtonYuan](https://github.com/NewtonYuan) - SungHyun627 [@SungHyun627](https://github.com/SungHyun627) - Tamashoo [@Tamashoo](https://github.com/Tamashoo) See [GitHub Releases](https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.57.2) for more information. You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. ## [v8.57.1](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8571-2026-03-16) ##### 🩹 Fixes - **eslint-plugin:** \[prefer-optional-chain] no report for property on intersection type ([#12126](typescript-eslint/typescript-eslint#12126)) ##### ❤️ Thank You - Newton Yuan [@NewtonYuan](https://github.com/NewtonYuan) See [GitHub Releases](https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.57.1) for more information. You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. ## [v8.57.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8570-2026-03-09) ##### 🚀 Features - **eslint-plugin:** \[no-unnecessary-condition] allow literal loop conditions in for/do loops ([#12080](typescript-eslint/typescript-eslint#12080)) ##### 🩹 Fixes - **eslint-plugin:** \[no-base-to-string] fix false positive for toString with overloads ([#12089](typescript-eslint/typescript-eslint#12089)) - **eslint-plugin:** \[prefer-promise-reject-errors] add allow `TypeOrValueSpecifier` to prefer-promise-reject-errors ([#12094](typescript-eslint/typescript-eslint#12094)) - **typescript-estree:** if the template literal is tagged and the text has an invalid escape, `cooked` will be `null` ([#11355](typescript-eslint/typescript-eslint#11355)) - **eslint-plugin:** guard against negative paramIndex in no-useless-default-assignment ([#12077](typescript-eslint/typescript-eslint#12077)) - **eslint-plugin:** handle statically analyzable computed keys in prefer-readonly ([#12079](typescript-eslint/typescript-eslint#12079)) - **eslint-plugin:** \[strict-void-return] false positives with overloads ([#12055](typescript-eslint/typescript-eslint#12055)) ##### ❤️ Thank You - Brad Zacher [@bradzacher](https://github.com/bradzacher) - Brian Schlenker [@bschlenk](https://github.com/bschlenk) - Evyatar Daud [@StyleShit](https://github.com/StyleShit) - James Henry [@JamesHenry](https://github.com/JamesHenry) - Josh Goldberg - Kirk Waiblinger [@kirkwaiblinger](https://github.com/kirkwaiblinger) - Moses Odutusin [@thebolarin](https://github.com/thebolarin) - Newton Yuan [@NewtonYuan](https://github.com/NewtonYuan) - SungHyun627 [@SungHyun627](https://github.com/SungHyun627) - Younsang Na [@nayounsang](https://github.com/nayounsang) See [GitHub Releases](https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.57.0) for more information. You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. ## [v8.56.1](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8561-2026-02-23) This was a version bump only for eslint-plugin to align it with other projects, there were no code changes. See [GitHub Releases](https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.56.1) for more information. You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website.
| datasource | package | from | to | | ---------- | -------------------------------- | ------ | ------ | | npm | @typescript-eslint/eslint-plugin | 8.56.0 | 8.58.2 | | npm | @typescript-eslint/parser | 8.56.0 | 8.58.2 | ## [v8.58.2](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8582-2026-04-13) ##### 🩹 Fixes - **eslint-plugin:** \[no-unnecessary-condition] use assignability checks in checkTypePredicates ([#12147](typescript-eslint/typescript-eslint#12147)) - remove tsbuildinfo cache file from published packages ([#12187](typescript-eslint/typescript-eslint#12187)) ##### ❤️ Thank You - Abhijeet Singh [@cseas](https://github.com/cseas) - 송재욱 See [GitHub Releases](https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.58.2) for more information. You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. ## [v8.58.1](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8581-2026-04-08) ##### 🩹 Fixes - **eslint-plugin:** \[no-unused-vars] fix false negative for type predicate parameter ([#12004](typescript-eslint/typescript-eslint#12004)) ##### ❤️ Thank You - MinJae [@Ju-MINJAE](https://github.com/Ju-MINJAE) See [GitHub Releases](https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.58.1) for more information. You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. ## [v8.58.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8580-2026-03-30) ##### 🚀 Features - support TypeScript 6 ([#12124](typescript-eslint/typescript-eslint#12124)) ##### 🩹 Fixes - **eslint-plugin:** \[prefer-regexp-exec] avoid fixing unknown RegExp flags ([#12161](typescript-eslint/typescript-eslint#12161)) - **eslint-plugin:** \[no-extraneous-class] handle index signatures ([#12142](typescript-eslint/typescript-eslint#12142)) - **eslint-plugin:** crash in `no-unnecessary-type-arguments` ([#12163](typescript-eslint/typescript-eslint#12163)) ##### ❤️ Thank You - ej shafran [@ej-shafran](https://github.com/ej-shafran) - Evyatar Daud [@StyleShit](https://github.com/StyleShit) - GG ZIBLAKING - milkboy2564 [@SeolJaeHyeok](https://github.com/SeolJaeHyeok) - teee32 [@teee32](https://github.com/teee32) See [GitHub Releases](https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.58.0) for more information. You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. ## [v8.57.2](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8572-2026-03-23) ##### 🩹 Fixes - **eslint-plugin:** \[prefer-readonly-parameter-types] preserve type alias infomation ([#11954](typescript-eslint/typescript-eslint#11954)) - **eslint-plugin:** \[no-useless-default-assignment] skip reporting false positives for unresolved type parameters ([#12127](typescript-eslint/typescript-eslint#12127)) - **eslint-plugin:** \[no-unsafe-return] false positive on unwrapping generic ([#12125](typescript-eslint/typescript-eslint#12125)) - **eslint-plugin:** \[no-restricted-types] flag banned generics in extends or implements ([#12120](typescript-eslint/typescript-eslint#12120)) - **eslint-plugin:** \[array-type] ignore Array and ReadonlyArray without type arguments ([#11971](typescript-eslint/typescript-eslint#11971)) - **eslint-plugin:** \[prefer-optional-chain] remove dangling closing parenthesis ([#11865](typescript-eslint/typescript-eslint#11865)) ##### ❤️ Thank You - Kirk Waiblinger [@kirkwaiblinger](https://github.com/kirkwaiblinger) - Konv Suu - mdm317 - Newton Yuan [@NewtonYuan](https://github.com/NewtonYuan) - SungHyun627 [@SungHyun627](https://github.com/SungHyun627) - Tamashoo [@Tamashoo](https://github.com/Tamashoo) See [GitHub Releases](https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.57.2) for more information. You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. ## [v8.57.1](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8571-2026-03-16) ##### 🩹 Fixes - **eslint-plugin:** \[prefer-optional-chain] no report for property on intersection type ([#12126](typescript-eslint/typescript-eslint#12126)) ##### ❤️ Thank You - Newton Yuan [@NewtonYuan](https://github.com/NewtonYuan) See [GitHub Releases](https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.57.1) for more information. You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. ## [v8.57.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8570-2026-03-09) ##### 🚀 Features - **eslint-plugin:** \[no-unnecessary-condition] allow literal loop conditions in for/do loops ([#12080](typescript-eslint/typescript-eslint#12080)) ##### 🩹 Fixes - **eslint-plugin:** \[no-base-to-string] fix false positive for toString with overloads ([#12089](typescript-eslint/typescript-eslint#12089)) - **eslint-plugin:** \[prefer-promise-reject-errors] add allow `TypeOrValueSpecifier` to prefer-promise-reject-errors ([#12094](typescript-eslint/typescript-eslint#12094)) - **typescript-estree:** if the template literal is tagged and the text has an invalid escape, `cooked` will be `null` ([#11355](typescript-eslint/typescript-eslint#11355)) - **eslint-plugin:** guard against negative paramIndex in no-useless-default-assignment ([#12077](typescript-eslint/typescript-eslint#12077)) - **eslint-plugin:** handle statically analyzable computed keys in prefer-readonly ([#12079](typescript-eslint/typescript-eslint#12079)) - **eslint-plugin:** \[strict-void-return] false positives with overloads ([#12055](typescript-eslint/typescript-eslint#12055)) ##### ❤️ Thank You - Brad Zacher [@bradzacher](https://github.com/bradzacher) - Brian Schlenker [@bschlenk](https://github.com/bschlenk) - Evyatar Daud [@StyleShit](https://github.com/StyleShit) - James Henry [@JamesHenry](https://github.com/JamesHenry) - Josh Goldberg - Kirk Waiblinger [@kirkwaiblinger](https://github.com/kirkwaiblinger) - Moses Odutusin [@thebolarin](https://github.com/thebolarin) - Newton Yuan [@NewtonYuan](https://github.com/NewtonYuan) - SungHyun627 [@SungHyun627](https://github.com/SungHyun627) - Younsang Na [@nayounsang](https://github.com/nayounsang) See [GitHub Releases](https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.57.0) for more information. You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. ## [v8.56.1](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8561-2026-02-23) This was a version bump only for eslint-plugin to align it with other projects, there were no code changes. See [GitHub Releases](https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.56.1) for more information. You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website.

PR Checklist
Overview
The heuristic in
definitelyDoesNotContainGlobalFlag()treated any non-literal second argument toRegExp()as proof that the global flag was absent. Forflags: string, that is too aggressive: the rule does not know whether runtime flags include'g'.This stops reporting when the flags argument is unknown at lint time.