[ban-types] remove object from the default ban list
This has been a point of contention for a while - I originally added it because TS currently makes it impossible to narrow the type nicely. However there ultimately isn't a good alternative to this type for many usecases. As such we're removing the default ban. If you want to continue banning it, you can configure the rule to do so.
[comma-dangle] align schema with ESLint v8
Should be pretty transparent unless you were using an invalid config.
[explicit-member-accessibility] now checks abstract members
[member-ordering] add support for getters and setters
This will likely cause your codebase's sort orders to change if you're using the default config.
[no-unused-vars-experimental] rule has been deleted
You should instead use @typescript-eslint/no-unused-vars instead! It has had full and awesome support for TypeScript since v4.9.0 - and it doesn't require type information!
Experimental-Utils:
Remove SourceCode#getComments API from ESLint types.
This API was deprecated in ESLint v4, and its usage will error in ESLint v8.
Support ESLint v8:
CLIEngine is now conditionally undefined. It was deprecated in v7 and removed in v8. If you're still using it, you should upgrade to the ESLint API.
Remove meta.docs.category. ESLint has removed this from their core rules as it wasn't ever very useful and was always poorly done. We have followed suit and removed it from our types and our rules.
TypeScript-ESTree / AST-Spec
Change .source of ExportNamedDeclaration, ExportAllDeclaration and ImportDeclaration to StringLiteral and add parse-time errors.
This ensures we're aligned with ESTree and producing the correct AST.
Remove TSParenthesizedType node.
This node was added when this project was first created because the TS-AST includes this node. However it ultimately conveys no actual AST meaning (just like parentheses in non-type code). Babel removed this node earlier this year.
We expect rules will continue to "just work". In a lot of cases rules will work better as they no longer need manual checks to "look past" the useless node.
Remove legacy option useJSXTextNode.
This option was added for compatibility between different ASTs a very long time ago - but all ASTs have converged on using JSXText - so you should be using that too.
Align class features AST with ESTree. This aligns with ESLint v8.
ClassProperty is now called PropertyDefinition
TSAbstractClassProperty is now called TSAbstractPropertyDefinition
TSAbstractPropertyDefinition.value is now always null.
It never made sense that this was allowed, and TS4.4 has now made this invalid.
Add full support for PrivateIdentifier (#private class members)
Previously we did not officially support them and emitted an "unstable" AST.
This will allow the community to build lint rules specifically targeting #private members.
Rename LineAndColumnData to Position (aligns naming with the ESTree spec docs)
Scope-Manager
Class properties with values now create a 'class-field-initializer' type scope around their value.
This aligns with eslint-scope v6.
Raw Changelog
Bug Fixes
eslint-plugin: [explicit-member-accessibility] report TSAbstractPropertyDefinition and TSAbstractMethodDefinition properly (#3901) (82016f9)
eslint-plugin: update new rules from master (#3840) (d88a6b4)
Depfu will automatically keep this PR conflict-free, as long as you don't add any commits to this branch yourself. You can also trigger a rebase manually by commenting with @depfu rebase.
All Depfu comment commands
@depfu rebase
Rebases against your default branch and redoes this update
@depfu recreate
Recreates this PR, overwriting any edits that you've made to it
@depfu merge
Merges this PR once your tests are passing and conflicts are resolved
@depfu close
Closes this PR and deletes the branch
@depfu reopen
Restores the branch and reopens this PR (if it's closed)
@depfu pause
Ignores all future updates for this dependency and closes this PR
@depfu pause [minor|major]
Ignores all future minor/major updates for this dependency and closes this PR
@depfu resume
Future versions of this dependency will create PRs again (leaves this PR as is)
Here is everything you need to know about this upgrade. Please take a good look at what changed and the test results before merging this pull request.
What changed?
✳️ @typescript-eslint/eslint-plugin (^4.31.0 → ^5.0.0) · Repo · Changelog
Release Notes
5.0.0
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by 44 commits:
chore: publish v5.0.0
chore: bump eslint to 8.0.0
feat(ast-spec): bring `Node` objects in line with ESTree (#3771)
chore: cleanup after rebase
fix(eslint-plugin): [explicit-member-accessibility] report `TSAbstractPropertyDefinition` and `TSAbstractMethodDefinition` properly (#3901)
chore: bump eslint-plugin-jest for eslint v8 support (#3895)
fix(eslint-plugin): update new rules from master (#3840)
fix: update new rules from master
feat(eslint-plugin): remove `object` from `ban-types`' default types (#3818)
feat(eslint-plugin): update recommended configs (#3809)
fix(eslint-plugin): crash in no-dupe-class-members (v5) (#3813)
feat: support `PrivateIdentifier` (#3808)
feat: align class property representation with ESTree (#3806)
feat(eslint-plugin): removed value from abstract property nodes (#3765)
feat: remove `meta.docs.category` from rules (#3800)
chore: add auto-canary release for v5 (#3776)
feat(typescript-estree): remove legacy `useJSXTextNode` option (#3109)
feat: remove `TSParenthesizedType` (#3340)
chore: remove no-unused-vars-experimental docs
chore: delete no-unused-vars-experimental test
feat(eslint-plugin): [member-ordering] add support for getters and setters (#3611)
chore(eslint-plugin): remove support for eslint 5 (#2683)
feat(eslint-plugin): remove `no-unused-vars-experimental`
feat: support ESLint v8 (#3737)
feat(experimental-utils): remove `getComments` from `ESLint` `SourceCode` types (#3766)
fix(typescript-estree): change `source` of ExportNamedDeclaration to Literal from Expression (#3763)
chore: bump Node to ESLint 8.0 ranges (#3767)
feat(eslint-plugin): [comma-dangle] align schema with ESLint v8 (#3768)
chore(experimental-utils): simplify `isTypeAssertion` predicate (#3973)
fix(experimental-utils): fix `isSetter`'s return type (#3975)
chore: bump lint-staged from 11.1.2 to 11.2.0 (#3969)
chore: bump pretty-format from 27.2.2 to 27.2.4 (#3968)
chore: bump @commitlint/config-conventional from 13.1.0 to 13.2.0 (#3967)
feat(experimental-utils): extract `isNodeOfTypes` out of `ast-utils`' `predicates` (#3836)
chore: bump eslint-plugin-jest from 24.4.2 to 24.5.2 (#3964)
chore: bump @types/prettier from 2.4.0 to 2.4.1 (#3963)
chore: bump eslint-plugin-eslint-plugin from 3.5.3 to 3.6.1 (#3962)
chore: bump @types/lodash from 4.14.173 to 4.14.175 (#3961)
chore: bump @microsoft/api-extractor from 7.18.11 to 7.18.12 (#3960)
docs(eslint-plugin): [consistent-type-imports] remove out-of-date note about decorator inlining
chore: bump @commitlint/cli from 13.1.0 to 13.2.0 (#3955)
chore: bump cspell from 5.10.1 to 5.11.1 (#3954)
chore: bump @commitlint/config-lerna-scopes from 13.1.0 to 13.2.0 (#3953)
chore: bump jest from 27.2.1 to 27.2.4 (#3952)
Depfu will automatically keep this PR conflict-free, as long as you don't add any commits to this branch yourself. You can also trigger a rebase manually by commenting with
@depfu rebase
.All Depfu comment commands