feat(eslint-plugin): [no-unnecessary-condition] check type predicates based on assignability
PR Checklist
- [x] Addresses an existing open issue: fixes #11798
- [x] That issue was marked as accepting prs
- [x] Steps in Contributing were taken
Overview
TODO
Thanks for the PR, @kirkwaiblinger!
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!
| Name | Link |
|---|---|
| Latest commit | c17df5c62ccffe425ed3fefc17fffec2c72597d0 |
| Latest deploy log | https://app.netlify.com/projects/typescript-eslint/deploys/6926d57e05bf6b00083a9b99 |
| Deploy Preview | https://deploy-preview-11799--typescript-eslint.netlify.app |
| Preview on mobile | Toggle QR Code...Use your smartphone camera to open QR code link. |
Lighthouse |
1 paths audited Performance: 96 (π΄ down 2 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 your Netlify project configuration.
π€ Nx Cloud AI Fix Eligible
An automatically generated fix could have helped fix failing tasks for this run, but Self-healing CI is disabled for this workspace. Visit workspace settings to enable it and get automatic fixes in future runs.
To disable these notifications, a workspace admin can disable them in workspace settings.
View your CI Pipeline Execution β for commit c17df5c62ccffe425ed3fefc17fffec2c72597d0
| Command | Status | Duration | Result |
|---|---|---|---|
nx run-many -t lint |
β Failed | 3m 12s | View β |
nx test eslint-plugin --coverage=false |
β Succeeded | 5m 13s | View β |
nx run-many -t typecheck |
β Succeeded | 2m 10s | View β |
nx test eslint-plugin-internal --coverage=false |
β Succeeded | 10s | View β |
nx test typescript-estree --coverage=false |
β Succeeded | 2s | View β |
nx run types:build |
β Succeeded | 2s | View β |
nx run generate-configs |
β Succeeded | 6s | View β |
nx run integration-tests:test |
β Succeeded | 3s | View β |
Additional runs (29) |
β Succeeded | ... | View β |
βοΈ Nx Cloud last updated this comment at 2025-11-26 10:40:13 UTC
Codecov Report
:x: Patch coverage is 89.13043% with 5 lines in your changes missing coverage. Please review.
:white_check_mark: Project coverage is 90.49%. Comparing base (17601fc) to head (c17df5c).
| Files with missing lines | Patch % | Lines |
|---|---|---|
| ...slint-plugin/src/rules/no-unnecessary-condition.ts | 85.29% | 4 Missing and 1 partial :warning: |
:x: Your patch check has failed because the patch coverage (89.13%) is below the target coverage (90.00%). You can increase the patch coverage or adjust the target coverage.
Additional details and impacted files
@@ Coverage Diff @@
## main #11799 +/- ##
==========================================
- Coverage 90.49% 90.49% -0.01%
==========================================
Files 522 523 +1
Lines 53357 53385 +28
Branches 8909 8919 +10
==========================================
+ Hits 48284 48309 +25
- Misses 5057 5059 +2
- Partials 16 17 +1
| Flag | Coverage Ξ | |
|---|---|---|
| unittest | 90.49% <89.13%> (-0.01%) |
:arrow_down: |
Flags with carried forward coverage won't be shown. Click here to find out more.
| Files with missing lines | Coverage Ξ | |
|---|---|---|
| .../eslint-plugin/src/rules/class-methods-use-this.ts | 100.00% <100.00%> (ΓΈ) |
|
| ...plugin/src/rules/no-unnecessary-type-parameters.ts | 97.08% <ΓΈ> (ΓΈ) |
|
| ...slint-plugin/src/rules/no-unsafe-type-assertion.ts | 100.00% <100.00%> (ΓΈ) |
|
| packages/eslint-plugin/src/util/isObjectType.ts | 100.00% <100.00%> (ΓΈ) |
|
| ...ckages/rule-tester/src/utils/flat-config-schema.ts | 40.65% <ΓΈ> (ΓΈ) |
|
| ...slint-plugin/src/rules/no-unnecessary-condition.ts | 98.90% <85.29%> (-0.67%) |
:arrow_down: |
:rocket: New features to boost your workflow:
- :snowflake: Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
- :package: JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.
