Skip to content
Permalink
1dba257be8
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
2158 lines (1344 sloc) 233 KB

Change Log

All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.

5.45.0 (2022-11-28)

Bug Fixes

  • eslint-plugin: [array-type] --fix flag removes parentheses from type (#5997) (42b33af)
  • eslint-plugin: [keyword-spacing] prevent crash on no options (#6073) (1f19998)
  • eslint-plugin: [member-ordering] support private fields (#5859) (f02761a)
  • eslint-plugin: [prefer-readonly] report if a member's property is reassigned (#6043) (6e079eb)

Features

  • eslint-plugin: [member-ordering] add a required option for required vs. optional member ordering (#5965) (2abadc6)

5.44.0 (2022-11-21)

Bug Fixes

  • eslint-plugin: [no-empty-interface] disable autofix for declaration merging with class (#5920) (a4f85b8)
  • eslint-plugin: [no-unnecessary-condition] handle index signature type (#5912) (5baad08)
  • eslint-plugin: [prefer-optional-chain] handle binary expressions in negated or (#5992) (2778ff0)
  • typescript-estree: don't consider a cached program unless it's specified in the current parserOptions.project config (#5999) (530e0e6)

Features

  • eslint-plugin: [adjacent-overload-signatures] check BlockStatement nodes (#5998) (97d3e56)
  • eslint-plugin: [keyword-spacing] Support spacing in import-type syntax (#5977) (6a735e1)

5.43.0 (2022-11-14)

Bug Fixes

  • eslint-plugin: [no-shadow] handle false positives on generics and parameters (#5902) (769e8c8)
  • eslint-plugin: [promise-function-async] handle keyword token (#5907) (f25a94f)

Features

  • eslint-plugin: [consistent-type-imports] support fixing to inline types (#5050) (75dcdf1)
  • eslint-plugin: [naming-convention] add support for "override" and "async" modifiers (#5310) (#5610) (c759da1)
  • eslint-plugin: [prefer-optional-chain] support suggesting !foo || !foo.bar as a valid match for the rule (#5594) (923d486)

5.42.1 (2022-11-07)

Bug Fixes

5.42.0 (2022-10-31)

Bug Fixes

  • ast-spec: add TSQualifiedName to TypeNode union (#5906) (5c316c1)
  • eslint-plugin: [no-extra-parens] handle type assertion in extends clause (#5901) (8ed7219)

Features

  • eslint-plugin: [member-ordering] add natural sort order (#5662) (1eaae09)
  • eslint-plugin: [no-invalid-void-type] better report message for void used as a constituent inside a function return type (#5274) (d806bda)

5.41.0 (2022-10-24)

Bug Fixes

  • eslint-plugin: [no-base-to-string] ignore Error, URL, and URLSearchParams by default (#5839) (96e1c6c)
  • type-utils: prevent stack overflow in isTypeReadonly (#5860) (a6d8f7e), closes #4476

Features

  • eslint-plugin: [no-unsafe-declaration-merging] switch to use scope analysis instead of type information (#5865) (e70a10a)
  • eslint-plugin: add no-unsafe-declaration-merging (#5840) (3728031)

5.40.1 (2022-10-17)

Bug Fixes

  • eslint-plugin: Skip missing 'rest' tuple type arguments in no-misused-promises (#5809) (c5beaa2), closes #5807

5.40.0 (2022-10-10)

Bug Fixes

  • eslint-plugin: [consistent-indexed-object-style] handle interface generic (#5746) (7a8a0a3)
  • eslint-plugin: [no-unnecessary-condition] handle void (#5766) (ac8f06b)

Features

  • eslint-plugin: Check 'rest' parameters in no-misused-promises (#5731) (6477f38), closes #4015
  • utils: add dependency constraint filtering for RuleTester (#5750) (121f4c0)

5.39.0 (2022-10-03)

Features

  • eslint-plugin: allow using void as a default type for a generic argument if allowInGenericTypeArguments is specified (#5671) (bb46ef0)

5.38.1 (2022-09-26)

Note: Version bump only for package @typescript-eslint/eslint-plugin

5.38.0 (2022-09-19)

Note: Version bump only for package @typescript-eslint/eslint-plugin

5.37.0 (2022-09-12)

Bug Fixes

  • eslint-plugin: [strict-boolean-expressions] check all conditions in a logical operator chain (#5539) (77d76e2)

5.36.2 (2022-09-05)

Bug Fixes

  • eslint-plugin: [no-extra-parens] handle generic ts array type. (#5550) (0d6a190)
  • scope-manager: correct handling for class static blocks (#5580) (35bb8dd)

5.36.1 (2022-08-30)

Note: Version bump only for package @typescript-eslint/eslint-plugin

5.36.0 (2022-08-30)

Bug Fixes

Features

5.35.1 (2022-08-24)

Bug Fixes

  • eslint-plugin: correct rule schemas to pass ajv validation (#5531) (dbf8b56)

5.35.0 (2022-08-24)

Features

  • eslint-plugin: [explicit-member-accessibility] suggest adding explicit accessibility specifiers (#5492) (0edb94a)

5.34.0 (2022-08-22)

Bug Fixes

  • eslint-plugin: [no-useless-constructor] handle parameter decorator (#5450) (864dbcf)

Features

  • eslint-plugin: [prefer-optional-chain] support suggesting !foo || !foo.bar as a valid match for the rule (#5266) (aca935c)

5.33.1 (2022-08-15)

Bug Fixes

  • missing placeholders in violation messages for no-unnecessary-type-constraint and no-unsafe-argument (and enable eslint-plugin/recommended rules internally) (#5453) (d023910)

5.33.0 (2022-08-08)

Bug Fixes

  • eslint-plugin: [no-extra-parens] handle await with type assertion (#5428) (e03826f)
  • website: add explicit frontmatter description to rule docs (#5429) (63cba5f)

Features

  • eslint-plugin: [member-ordering] support static blocks (#5417) (5983e5a)
  • eslint-plugin: [prefer-as-const] adds support for class properties (#5413) (d2394f8)

5.32.0 (2022-08-01)

Features

  • eslint-plugin: [no-use-before-define] add "allowNamedExports" option (#5397) (ad412cd)

5.31.0 (2022-07-25)

Bug Fixes

  • eslint-plugin: [typedef] Support nested array destructuring with type annotation (#5311) (6d19efe)
  • scope-manager: handle typeParameters of TSInstantiationExpression (#5355) (2595ccf)

Features

  • eslint-plugin: [consistent-generic-ctors] check class field declaration (#5288) (48f996e)
  • eslint-plugin: [prefer-nullish-coalescing] add ignoreTernaryTests option (#4965) (f82727f)

5.30.7 (2022-07-18)

Bug Fixes

  • eslint-plugin: [no-inferrable] fix optional param to valid code (#5342) (98f6d5e)
  • eslint-plugin: [no-unused-vars] highlight last write reference (#5267) (c3f199a)

5.30.6 (2022-07-11)

Note: Version bump only for package @typescript-eslint/eslint-plugin

5.30.5 (2022-07-04)

Bug Fixes

  • eslint-plugin: [consistent-indexed-object-style] fix record mode fixer for generics with a default value (#5280) (57f032c)

5.30.4 (2022-07-03)

Note: Version bump only for package @typescript-eslint/eslint-plugin

5.30.3 (2022-07-01)

Note: Version bump only for package @typescript-eslint/eslint-plugin

5.30.2 (2022-07-01)

Note: Version bump only for package @typescript-eslint/eslint-plugin

5.30.1 (2022-07-01)

Bug Fixes

  • eslint-plugin: [no-base-to-string] add missing apostrophe to message (#5270) (d320174)

5.30.0 (2022-06-27)

Features

  • eslint-plugin: [no-shadow] add shadowed variable location to the error message (#5183) (8ca08e9)
  • treat this in typeof this as a ThisExpression (#4382) (b04b2ce)

5.29.0 (2022-06-20)

Note: Version bump only for package @typescript-eslint/eslint-plugin

5.28.0 (2022-06-13)

Bug Fixes

  • [TS4.7] allow visiting of typeParameters in TSTypeQuery (#5166) (dc1f930)
  • eslint-plugin: [space-infix-ops] support for optional property without type (#5155) (1f25daf)

Features

  • eslint-plugin: [consistent-generic-constructors] add rule (#4924) (921cdf1)

5.27.1 (2022-06-06)

Bug Fixes

  • eslint-plugin: [space-infix-ops] correct PropertyDefinition with typeAnnotation (#5113) (d320174)
  • eslint-plugin: [space-infix-ops] regression fix for conditional types (#5135) (e5238c8)
  • eslint-plugin: [space-infix-ops] regression fix for type aliases (#5138) (4e13deb)

5.27.0 (2022-05-30)

Bug Fixes

  • eslint-plugin: [no-type-alias] handle Template Literal Types (#5092) (8febf11)

Features

  • [4.7] support new extensions (#5027) (efc147b)
  • eslint-plugin: [ban-ts-comment] add descriptionFormat option (#5026) (1fb31a4)
  • eslint-plugin: [no-misused-promises] warn when spreading promises (#5053) (61ffa9e)
  • eslint-plugin: [space-infix-ops] missing error report for conditional types (#5041) (0bfab6c)

5.26.0 (2022-05-23)

Bug Fixes

  • eslint-plugin: [member-delimiter-style] autofixer result is not as expected when comments after the delimiter with option delimiter: 'none' (#5029) (ed7b5f6)
  • eslint-plugin: [member-delimiter-style] autofixer result is not as expected with option delimiter: 'none' (#5023) (9e97a11)
  • eslint-plugin: [prefer-readonly] correct issue with anonymus functions (#4974) (952e2f0), closes #2590

5.25.0 (2022-05-17)

Bug Fixes

  • eslint-plugin: [typedef] stop enforcing rule for assignment expressions (#4958) (04a216c)
  • eslint-plugin: strict config should not extend recommended (#5005) (05d71c2)
  • website: correct Presets link to be Configs (#5004) (e18e91c)

Features

  • eslint-plugin: [no-empty-function] new allow option overrideMethods (#4923) (13c05ae)
  • eslint-plugin: deprecate no-duplicate-imports in favour of import/no-duplicates (#4973) (1d2e41a)
  • update to TypeScript 4.7-rc (#4829) (6fe783c)

5.24.0 (2022-05-16)

Bug Fixes

  • eslint-plugin: [array-type] in fixer add missing parens for constructor types #4756 (#4971) (0377070)

Features

  • eslint-plugin: Add BigInt object type to default ban-types list (#4970) (1867728)
  • eslint-plugin: add new 'strict' config (#4706) (4a500b2)

5.23.0 (2022-05-09)

Bug Fixes

  • eslint-plugin: [no-restricted-imports] allow type import as long as there's one matching pattern (#4898) (0419d28)
  • eslint-plugin: [no-unnecessary-type-constraint] change to suggestion fix, fix multiple trailing comma failures (#4901) (4507ac8)

5.22.0 (2022-05-02)

Bug Fixes

  • eslint-plugin: [comma-spacing] verify nextToken exists (#4868) (23746f8)

Features

  • eslint-plugin: [no-duplicate-enum-values] add rule (#4833) (5899164)

5.21.0 (2022-04-25)

Bug Fixes

  • eslint-plugin: [no-misused-promises] prioritize false returns when checking whether a function returns only void (#4841) (ccadb60)
  • eslint-plugin: [no-namespace] fix false positive for exported namespaces when allowDeclarations=true (#4844) (4e7c9be)
  • eslint-plugin: [space-infix-ops] fix no error when right type is function (#4848) (d74d559)

Features

  • eslint-plugin: [parameter-properties] add rule to replace no-parameter-properties (#4622) (88ed9ec)

5.20.0 (2022-04-18)

Features

  • eslint-plugin: [no-magic-numbers] ignoreTypeIndexes option (#4789) (5e79451)

5.19.0 (2022-04-11)

Bug Fixes

  • eslint-plugin: update code to use estree range instead of ts pos/end #4723 (#4790) (a1e9fc4)

Features

  • eslint-plugin: [unified-signatures] add ignoreDifferentlyNamedParameters option (#4659) (fdf95e0)
  • eslint-plugin: add support for valid number and bigint intersections in restrict-plus-operands rule (#4795) (19c600a)

5.18.0 (2022-04-04)

Bug Fixes

  • eslint-plugin: method-signature-style respect getter signature (#4777) (12dd670)

Features

  • eslint-plugin: [no-shadow] ignoreOnInitialization option (#4603) (068ea9b)
  • eslint-plugin: [no-this-alias] report on assignment expressions (#4718) (8329498)

5.17.0 (2022-03-28)

Features

  • eslint-plugin: [no-unused-vars] add destructuredArrayIgnorePattern options (#4748) (6f8db8b)

5.16.0 (2022-03-21)

Bug Fixes

  • eslint-plugin: [consistent-type-assertions] enforce assertionStyle for const assertions (#4685) (8ec05be)

Features

  • eslint-plugin: [prefer-optional-chain] support logical with empty object (#4430) (d21cfe0)

5.15.0 (2022-03-14)

Features

  • parser: add parserOptions.emitDecoratorMetadata (#4646) (e3dd343)

5.14.0 (2022-03-07)

Bug Fixes

  • eslint-plugin: [naming-convention] cover case that requires quotes (#4582) (3ea0947)
  • eslint-plugin: [no-misused-promises] factor thenable returning function overload signatures (#4620) (56a09e9)
  • eslint-plugin: [prefer-readonly-parameter-types] handle class sharp private field and member without throwing error (#4343) (a65713a)
  • eslint-plugin: [return-await] correct autofixer in binary expression (#4401) (5fa2fad)

Features

  • eslint-plugin: [no-misused-promises] add granular options within checksVoidReturns (#4623) (1085177)

5.13.0 (2022-02-28)

Bug Fixes

  • eslint-plugin: [sort-type-union-intersection-members] Wrap the constructorType in parentheses (#4590) (851bb90)

Features

  • eslint-plugin: [no-misused-promises] check more places for checksVoidReturn (#4541) (052cf51)
  • eslint-plugin: add no-redundant-type-constituents rule (#4378) (63d051e)
  • eslint-plugin: add no-useless-empty-export rule (#4380) (823b945)
  • eslint-plugin: add extension rule space-before-blocks (#1606) (#4184) (208b6d0)
  • eslint-plugin: added member group support to member-ordering rule (#4538) (6afcaea)

5.12.1 (2022-02-21)

Bug Fixes

  • eslint-plugin: [no-unnecessary-type-arguments] fix comparison of types (#4555) (fc3936e)

5.12.0 (2022-02-14)

Bug Fixes

  • eslint-plugin: [init-declarations] fix nested namespace (#4544) (fe910e6)
  • eslint-plugin: [no-unnecessary-type-arguments] Use Symbol to check if it's the same type (#4543) (5b7d8df)
  • support nested object deconstructuring with type annotation (#4548) (4da9278)

Features

  • add checking property definition for allowNames option (#4542) (e32bef6)

5.11.0 (2022-02-07)

Bug Fixes

  • eslint-plugin: [no-magic-numbers] fix invalid schema merging (#4517) (b95f796)
  • eslint-plugin: [non-nullable-type-assertion-style] fix false positive when asserting to a generic type that might be nullish (#4509) (4209362)

Features

  • eslint-plugin: [explicit-function-return-type] add allowedNames (#4440) (936e252)

5.10.2 (2022-01-31)

Bug Fixes

  • eslint-plugin: [no-restricted-imports] allow relative type imports with patterns configured (#4494) (4a6d217)

5.10.1 (2022-01-24)

Note: Version bump only for package @typescript-eslint/eslint-plugin

5.10.0 (2022-01-17)

Bug Fixes

  • eslint-plugin: [explicit-function-return-type] support AllowTypedFunctionExpression within AllowHigherOrderFunction (#4250) (d053cde)
  • eslint-plugin: [no-extra-semi] false negatives when used with eslint 8.3.0 (#4458) (f4016c2)
  • eslint-plugin: [no-invalid-this] crash when used with eslint 8.7.0 (#4448) (e56f1e5)
  • eslint-plugin: [no-magic-numbers] handle bigint in class props (#4411) (c8e650f)

Features

  • rename experimental-utils to utils and make experimental-utils an alias to the new package (#4172) (1d55a75)

5.9.1 (2022-01-10)

Note: Version bump only for package @typescript-eslint/eslint-plugin

5.9.0 (2022-01-03)

Features

  • experimental-utils: move isTypeReadonly from eslint-plugin to experimental-utils (#3658) (a9eb0b9)

5.8.1 (2021-12-27)

Bug Fixes

  • eslint-plugin: [consistent-indexed-object-style] do not report for circular references (#4347) (6edebcd)
  • eslint-plugin: [consistent-type-definitions] correct fixer with declare keyword (#4334) (0cd911a)
  • eslint-plugin: [padding-line-between-statements] make function overloading is also processed (#4345) (d31ec26)

5.8.0 (2021-12-20)

Bug Fixes

  • eslint-plugin: [no-implied-eval] improve performance (#4313) (e344596)
  • eslint-plugin: [padding-line-between-statements] type StatementTypes can't differenciate from variable (#4270) (bfc4324)
  • eslint-plugin: [strict-boolean-expression] false positive for truthy boolean (#4275) (72c2e41)
  • eslint-plugin: array-type mark AST_NODE_TYPES.TSBigIntKeyword as simple (#4274) (74e544e)
  • eslint-plugin: handle method overloading in semi (#4318) (3b87b49)
  • experimental-utils: support immutable members (#3844) (3d33a77)

Features

  • eslint-plugin: [no-throw-literal] add options to to disallow any/unknown (#4207) (ff0adf9)
  • eslint-plugin: [restrict-plus-operand] add allowAny option (#4260) (2788545)

5.7.0 (2021-12-13)

Features

  • eslint-plugin: [consistent-type-exports] support TS4.5 inline export specifiers (#4236) (be4d976)
  • eslint-plugin: [consistent-type-imports] support TS4.5 inline import specifiers (#4237) (f61af7c)
  • eslint-plugin: [no-shadow] support TS4.5 inline import specifiers (#4239) (96b7e8e)

5.6.0 (2021-12-06)

Features

  • scope-manager: support TS4.5 import/export specifier kind (#4234) (833f822)

5.5.0 (2021-11-29)

Bug Fixes

  • eslint-plugin: [member-ordering] order literal names correctly in (#4054) (d57141a)
  • eslint-plugin: [no-duplicate-imports] remove unnecessary type checking for node.source (#4196) (637722a)
  • eslint-plugin: [no-var-requires] do not report require created from createRequire (#4221) (0040186)
  • eslint-plugin: [prefer-for-of] do nor error when iterating over this (#4176) (258ddb0)
  • eslint-plugin: [require-await] treat yield* asynciterable as an await (#4125) (5a4ce6a)
  • eslint-plugin: remove all whitespaces in comparison #4220 (#4223) (853d799)

Features

  • eslint-plugin: [member-ordering] add option to sort case insensitive (#3896) (e3533d5)
  • eslint-plugin: array-type distinguish whether readonly or not (#4066) (314af44)

5.4.0 (2021-11-15)

Bug Fixes

  • correct issues with circular imports (#4140) (4c87b24)
  • eslint-plugin: [explicit-member-accessibility] private fields cannot have accessibility modifiers (#4117) (81b25c1)
  • eslint-plugin: [no-implied-eval] ignore locally declared functions (#4049) (d97140e)
  • eslint-plugin: check optional chaining for floating promises (#4096) (d724777)

Features

  • add RuleCreator.withoutDocs (#4136) (87cfc6a)
  • typescript-estree: support private fields in-in syntax (#4075) (939d8ea)

5.3.1 (2021-11-08)

Note: Version bump only for package @typescript-eslint/eslint-plugin

5.3.0 (2021-11-01)

Bug Fixes

  • eslint-plugin: ignore private identifiers in explicit-module-boundary-types (#4046) (80b853d)
  • eslint-plugin: skip seenTypes for unions in isTypeReadonly (#4043) (6af7ca7)

Features

  • eslint-plugin: [no-shadow] exclude external type declaration merging (#3959) (a93cebf)

5.2.0 (2021-10-25)

Bug Fixes

  • eslint-plugin: [typedef] fix regression with class properties (#4034) (fe53d22), closes #4033

Features

  • eslint-plugin: adding consistent-type-exports rule (#3936) (1971a3f)

5.1.0 (2021-10-18)

Bug Fixes

  • eslint-plugin: [no-restricted-imports]: report type-only imports properly (#3996) (283cdf2)
  • eslint-plugin: [strict-bool-expr] treat unconstrained generic as any (#3981) (9b29ca7)

5.0.0 (2021-10-11)

Bug Fixes

  • eslint-plugin: [explicit-member-accessibility] report TSAbstractPropertyDefinition and TSAbstractMethodDefinition properly (#3901) (82016f9)
  • eslint-plugin: update new rules from master (#3840) (d88a6b4)
  • update new rules from master (b34fb7e)
  • eslint-plugin: crash in no-dupe-class-members (v5) (#3813) (4b09644)

Features

BREAKING CHANGES

  • eslint-plugin: ban-types no longer reports object by default

4.33.0 (2021-10-04)

Bug Fixes

  • eslint-plugin: [lines-between-class-members] fix exceptAfterOverload for abstract methods (#3943) (240fc65)
  • eslint-plugin: [no-confusing-void-expression] support optional chaining (#3937) (c40dd13)
  • eslint-plugin: [no-restricted-imports] fix crash when no options given (#3947) (edaa3c1)
  • eslint-plugin: [non-nullable-type-assertion-style] false-positive with non-nullish as assertions and types (#3940) (40760f9)
  • eslint-plugin: [padding-line-between-statements] TSModuleBlock should change scope (#3944) (f8f534e)
  • eslint-plugin: [prefer-regexp-exec] check RegExp without flags (#3946) (0868725)

4.32.0 (2021-09-27)

Bug Fixes

  • eslint-plugin: [consistent-type-definitions] correct fix for export default (#3899) (ebb33ed)
  • eslint-plugin: [no-require-imports] report only global require (#3871) (8aa87a1)
  • eslint-plugin: [no-shadow] ignore type-only imports properly (#3868) (dda9cee)
  • eslint-plugin: [no-var-requires] report problems within NewExpression (#3884) (ed5e459)
  • eslint-plugin: [padding-line-between-statements] problems within namespaces not being reported (#3869) (1861356)
  • eslint-plugin: [prefer-regexp-exec] respect flags when using RegExp (#3855) (ffdb5ff)
  • eslint-plugin: [prefer-return-this-type] handle generics properly in fixer (#3852) (9e98b8f)
  • eslint-plugin: false-positive/negative with array index in no-unnecessary-condition (#3805) (bdb8f0b)

Features

  • eslint-plugin: [no-type-alias]: add allowGenerics option (#3865) (4195919)
  • eslint-plugin: add no-non-null-asserted-nullish-coalescing rule (#3349) (4e99961)
  • eslint-plugin: add new extended rule no-restricted-imports (#3775) (ec5d506)
  • eslint-plugin-internal: [prefer-ast-types-enum] add DefinitionType enum (#3916) (13b7de5)

4.31.2 (2021-09-20)

Note: Version bump only for package @typescript-eslint/eslint-plugin

4.31.1 (2021-09-13)

Note: Version bump only for package @typescript-eslint/eslint-plugin

4.31.0 (2021-09-06)

Bug Fixes

  • utils: support immutable arrays in ReportFixFunction (#3830) (8218055)

Features

  • eslint-plugin: [prefer-readonly-parameter-types] add option treatMethodsAsReadonly (#3733) (a46e318)
  • eslint-plugin: [restrict-template-expressions] add option to allow RegExp (#3709) (363b3dc)
  • eslint-plugin: add no-meaningless-void-operator rule (#3641) (ea40ab6)
  • eslint-plugin: add extension rule padding-line-between-statements (#3418) (f79ae9b)

4.30.0 (2021-08-30)

Bug Fixes

  • eslint-plugin: [dot-notation] false positive with optional chaining (#3711) (c19fc6e), closes #3510
  • eslint-plugin: [prefer-reduce-type-parameter] handle already existing type params (#3706) (71dd273)
  • eslint-plugin: isTypeReadonly error with <TS3.7 (#3731) (5696407)

Features

  • typescript-estree: add support for class static blocks (#3730) (f81831b)

4.29.3 (2021-08-23)

Note: Version bump only for package @typescript-eslint/eslint-plugin

4.29.2 (2021-08-16)

Note: Version bump only for package @typescript-eslint/eslint-plugin

4.29.1 (2021-08-09)

Note: Version bump only for package @typescript-eslint/eslint-plugin

4.29.0 (2021-08-02)

Bug Fixes

  • eslint-plugin: [no-implied-eval] handle bind on nested member expressions (#3598) (f5a6806)
  • eslint-plugin: [no-implied-eval] permit more expression types (#3624) (ca7c549)
  • eslint-plugin: [no-unnecessary-boolean-literal-compare] incorrect fix when condition is reversed (#3581) (b595575)
  • eslint-plugin: [return-await] handle nested functions correctly (#3601) (4a196b5)
  • eslint-plugin: [return-await] properly handle fixes for TSAsExpression (#3631) (00a4369)

Features

  • eslint-plugin: [no-redeclare] ignoreDeclarationMerge of enum+namespace (#3572) (18e30cb)
  • eslint-plugin: [prefer-return-this-type] add a new rule (#3228) (5e1a615)
  • eslint-plugin: Catch unused React import with new JSX transform (#3577) (02998ea)

4.28.5 (2021-07-26)

Note: Version bump only for package @typescript-eslint/eslint-plugin

4.28.4 (2021-07-19)

Note: Version bump only for package @typescript-eslint/eslint-plugin

4.28.3 (2021-07-12)

Note: Version bump only for package @typescript-eslint/eslint-plugin

4.28.2 (2021-07-05)

Note: Version bump only for package @typescript-eslint/eslint-plugin

4.28.1 (2021-06-28)

Note: Version bump only for package @typescript-eslint/eslint-plugin

4.28.0 (2021-06-21)

Bug Fixes

  • eslint-plugin: [prefer-regexp-exec] factor in union types (#3434) (ac86a79)

4.27.0 (2021-06-14)

Bug Fixes

  • eslint-plugin: allow explicit any for no-unsafe-return (#3498) (b15a2b2)

Features

  • eslint-plugin: [prefer-literal-enum-member] add allowBitwiseExpressions option (#3515) (288092a)

4.26.1 (2021-06-07)

Bug Fixes

  • eslint-plugin: [prefer-includes] ignore option chaining before indexOfs (#3432) (bf0cddb)
  • eslint-plugin: fix doc url generation (#3475) (fc5f171), closes #3473

4.26.0 (2021-05-31)

Bug Fixes

  • eslint-plugin: [no-type-alias] consider type imports as alias types (#3433) (d4f0774)

Features

  • eslint-plugin: [member-ordering] add callback as an ordering type of node (#3354) (d134b1f)
  • eslint-plugin: [space-infix-ops] Add support for Union and intersection of type declarations (#3360) (3d29323)

4.25.0 (2021-05-24)

Bug Fixes

  • corrected no-unsupported-browser-code in roadmap as unimplemented (#3407) (2319b0e)

4.24.0 (2021-05-17)

Bug Fixes

  • eslint-plugin: [no-shadow] fix static class method generics shadowing class generics (#3393) (b1e1c8a), closes #2592
  • eslint-plugin: [no-unsafe-*] special case handling for the empty map constructor with no generics (#3394) (cae4f4a), closes #2109

Features

  • eslint-plugin: [dot-notation] optionally allow square bracket notation where an index signature exists in conjunction with noPropertyAccessFromIndexSignature (#3361) (37ec2c2)

4.23.0 (2021-05-10)

Bug Fixes

  • scope-manager: fix visiting TSAsExpression in assignment (#3355) (87521a0)

Features

  • refactor to split AST specification out as its own module (#2911) (25ea953)

4.22.1 (2021-05-04)

Note: Version bump only for package @typescript-eslint/eslint-plugin

4.22.0 (2021-04-12)

Bug Fixes

  • eslint-plugin: [no-unsafe-argument] handle tuple types on rest arguments (#3269) (6f8cfe6)

Features

  • eslint-plugin: [prefer-regexp-exec] add autofix (#3207) (e2cbeef)

4.21.0 (2021-04-05)

Bug Fixes

  • eslint-plugin: [no-type-alias] consider keyof as an alias (#3242) (329ef02)
  • eslint-plugin: [no-unnecessary-type-assertion] correct bad fix for angle bracket assertion (#3244) (265a039)
  • eslint-plugin: [restrict-plus-operands] consider template literal types as strings (#3234) (ccfd68e)
  • eslint-plugin: [strict-boolean-expressions] account for truthy literals (#3236) (0913f40)
  • eslint-plugin: always ignore assignments in no-unnecessary-type-assertion (#3235) (0221476)

Features

  • eslint-plugin: [no-unsafe-argument] add rule (#3256) (b1aa7dc), closes #791
  • eslint-plugin: [no-unsafe-call][no-unsafe-member-access] improve report messages for this for noImplicitThis (#3199) (b1b26c4)

4.20.0 (2021-03-29)

Features

  • eslint-plugin: [space-infix-ops] support for class properties and type aliases (#3231) (5414bf2)
  • eslint-plugin: [type-annotation-spacing] handle space between ? and : (#3138) (40bdb0b)

4.19.0 (2021-03-22)

Bug Fixes

  • eslint-plugin: [member-delimiter-style] correct invalid fix for multiline with params on the same line (#3177) (7ad343b)
  • eslint-plugin: [promise-function-async] bad fixer with computed and literal methods (#3163) (e3a3ea0)

Features

  • eslint-plugin: [object-curly-spacing] support MappedType (#3176) (0557a43)
  • eslint-plugin: [unbound-method] improve error message (#3203) (5cc5d2e), closes #3201

4.18.0 (2021-03-15)

Bug Fixes

  • eslint-plugin: [explicit-module-boundary-types] fixes #2864 related to functions in nested object properties (#3178) (55e1fba)
  • eslint-plugin: [no-extran-class] allowWithDecorator should ignore other errors (#3160) (a148673)

Features

  • eslint-plugin: add package type declaration (#3164) (08b058a)

4.17.0 (2021-03-08)

Bug Fixes

  • eslint-plugin: [no-unnecessary-type-assertion] handle assignment (#3133) (cb22561)

Features

  • eslint-plugin: [strict-bool-expr] add fixes and suggestions (#2847) (3f9e9a1)

4.16.1 (2021-03-01)

Note: Version bump only for package @typescript-eslint/eslint-plugin

4.16.0 (2021-03-01)

Bug Fixes

  • eslint-plugin: [consistent-indexed-object-style] do not autofix if interface has extends (#3009) (b0475af)
  • eslint-plugin: [no-implied-eval] handle conditional expression (#3125) (8c65d30)
  • eslint-plugin: [no-unused-vars] don't report nested module declaration (#3119) (4ca5888)
  • eslint-plugin: [prefer-function-type] apply existing comments to the fixed code (#3094) (c32f803)
  • eslint-plugin: [unbound-method] allow super expressions in this assignments (#3010) (c65a139)

Features

  • eslint-plugin: [member-delimiter-style] Add an option 'multilineDetection' to treat types and interfaces as single line if the last member ends on the same line as the closing bracket (#2970) (cf86f42)
  • eslint-plugin: [prom-func-async] report only function head (#2872) (25f459c)

4.15.2 (2021-02-22)

Bug Fixes

  • typescript-estree: correct issues in AST definition (#3083) (509a117)
  • add missing intrinsic keyword node to AST (#3081) (409bf0b)
  • eslint-plugin: [no-var-requires] report when used in type assertion (#3074) (763a252)

4.15.1 (2021-02-15)

Bug Fixes

  • eslint-plugin: [explicit-module-boundary-types] check allowNames on function declarations and property methods (#3051) (0ade469)

4.15.0 (2021-02-08)

Bug Fixes

  • eslint-plugin: [no-extra-parens] handle ESLint 7.19.0 (#2993) (4615048)
  • eslint-plugin: [prefer-function-type] correct fixer when signature ends with a semi (#3002) (898dd39)
  • scope-manager: fix visiting of TSImportType (#3008) (ce4fcbf), closes #3006

4.14.2 (2021-02-01)

Bug Fixes

  • eslint-plugin: [consistent-type-imports] incorrect handling of computed property type signatures (#2990) (58f2655), closes #2989
  • scope-manager: correctly reference generic parameters when decorator metadata is enabled (#2975) (7695ef3), closes #2972

4.14.1 (2021-01-25)

Bug Fixes

  • eslint-plugin: [sort-type-union-intersection-members] consider void as a nullish (#2944) (a241b25), closes #2940
  • scope-manager: fix incorrect handling of class decorators and class method default params (#2943) (e1eac83), closes #2941 #2942 #2751

4.14.0 (2021-01-18)

Features

  • add support for decorator metadata in scope analysis and in consistent-type-imports (#2751) (445e416), closes #2559
  • eslint-plugin: add object-curly-spacing rule (#2892) (32bd18d)

4.13.0 (2021-01-11)

Bug Fixes

Features

  • eslint-plugin: [sort-type-union-intersection-members] add nullish group (#2919) (5558f41)

4.12.0 (2021-01-04)

Bug Fixes

  • eslint-plugin: [comma-spacing] handle empty type params (#2915) (4d69fbb)

Features

  • eslint-plugin: add rule sort-type-union-intersection-members (#2913) (9092c04)

4.11.1 (2020-12-28)

Bug Fixes

  • eslint-plugin: [naming-convention] fix precedence of method and property meta selectors (#2877) (2f10e1a)

4.11.0 (2020-12-21)

Bug Fixes

  • eslint-plugin: [non-nullable-type-assertion-style] handle const assertion (#2881) (53dc34d)

Features

  • eslint-plugin: [prom-func-async] add automatic fix (#2845) (717e718)

4.10.0 (2020-12-14)

Bug Fixes

  • eslint-plugin: [naming-convention] fix wrong member of method and property meta selectors (#2856) (9a6c362)

Features

  • eslint-plugin: add rule non-nullable-type-assertion-style (#2624) (7eee44f)

4.9.1 (2020-12-07)

Bug Fixes

  • eslint-plugin: [method-signature-style] fix crash with methods without a return type (#2836) (fed89f2), closes #2834
  • eslint-plugin: [no-unused-vars] false-positive with class expressions (#2833) (aadb39f), closes #2831
  • eslint-plugin: [no-unused-vars] fix race condition between naming-convention and no-unused-vars (#2848) (ccb6b94), closes #2844

4.9.0 (2020-11-30)

Bug Fixes

  • eslint-plugin: [consistent-indexed-object-style] convert readonly index signature to readonly record (#2798) (29428a4)
  • eslint-plugin: [consistent-type-imports] crash when using both default and namespace in one import (#2778) (c816b84)
  • eslint-plugin: [explicit-module-boundary-types] ignore functions exported within typed object/array literals (#2805) (73a63ee)
  • eslint-plugin: [no-use-before-define] allow class references if they're within a class decorator (#2827) (050023a), closes #2842
  • eslint-plugin: [triple-slash-reference] fix crash with external module reference (#2788) (32b1b68)
  • scope-manager: fix assertion assignments not being marked as write references (#2809) (fa68492), closes #2804

Features

  • eslint-plugin: [naming-convention] add requireDouble, allowDouble, allowSingleOrDouble options for underscores (#2812) (dd0576a)
  • eslint-plugin: [naming-convention] add requiresQuotes modifier (#2813) (6fc8409), closes #2761 #1483
  • eslint-plugin: [naming-convention] add modifier unused (#2810) (6a06944)
  • eslint-plugin: [naming-convention] add modifiers exported, global, and destructured (#2808) (fb254a1), closes #2239 #2512 #2318 #2802
  • eslint-plugin: [naming-convention] allow destructured modifier for parameter selector (#2829) (525d2ff), closes #2828
  • eslint-plugin: [naming-convention] split property and method selectors into more granular classXXX, objectLiteralXXX, typeXXX (#2807) (665b6d4), closes #1477 #2802
  • eslint-plugin: [no-unused-vars] fork the base rule (#2768) (a8227a6), closes #2782 #2714 #2648
  • eslint-plugin: [unbound-method] add support for methods with a this: void parameter (#2796) (878dd4a)

4.8.2 (2020-11-23)

Bug Fixes

  • eslint-plugin: [prefer-literal-enum-member] allow pure template literal strings (#2786) (f3bf6a1)

4.8.1 (2020-11-17)

Bug Fixes

  • eslint-plugin: [no-unnecessary-condition] false positive when array predicate returns unknown (#2772) (111c244)

4.8.0 (2020-11-16)

Bug Fixes

  • eslint-plugin: [consistent-type-definitions] remove fixer when the interface is within a global module declaration (#2739) (2326238)
  • eslint-plugin: [no-unsafe-member-access] ignore MemberExpression's whose parents are either TSClassImplements or TSInterfaceHeritage (#2753) (535db3b)

4.7.0 (2020-11-09)

Bug Fixes

  • eslint-plugin: [array-type] parenthesize ReadonlyArray fix (#2747) (83385ac)
  • eslint-plugin: [no-extra-non-null-assertion] false positive with non-nullable computed key (#2737) (e82698c)

Features

4.6.1 (2020-11-02)

Bug Fixes

  • eslint-plugin: [consistent-indexed-object-style] fix wrong autofix behaviour with generics (#2722) (73d9713)
  • eslint-plugin: [no-shadow] ignore global module augmentation (#2729) (d8c67a5)

4.6.0 (2020-10-26)

Bug Fixes

  • eslint-plugin: [method-signature-style] correct fixer for overloads in an object literal type (#2708) (0763913)
  • eslint-plugin: [method-signature-style] don't auto-fix interfaces within namespaces (#2678) (e012049)
  • eslint-plugin: [prefer-string-starts-ends-with] Check negative indices in the second position for slice (#2696) (66e9c6e)

Features

  • eslint-plugin: [ban-types] support banning [] (#2704) (ef8b5a7), closes #2582
  • eslint-plugin: add no-unnecessary-type-constraint rule (#2516) (880ac75)
  • eslint-plugin: add extension rule space-infix-ops (#2593) (343d20d)

4.5.0 (2020-10-19)

Bug Fixes

  • eslint-plugin: [array-type] fix issues with readonly option (#2667) (63d1d81)
  • eslint-plugin: [lines-between-class-members] fix typo in schema (#2681) (a2a2514)
  • eslint-plugin: [naming-convention] check bodyless function parameters (#2675) (c505863)
  • eslint-plugin: [no-invalid-this] allow "this" in class property definitions (#2685) (dccb6ee)
  • eslint-plugin: [no-misused-promises] False negative in LogicalExpression (#2682) (30a6951), closes #2544
  • eslint-plugin: [no-unnecessary-type-assertion] correct fixer for vue files (#2680) (55111af)
  • eslint-plugin: [return-await] do not auto-fix when type is any/unknown (#2671) (d690c8d)

Features

  • eslint-plugin: [dot-notation] add allowProtectedClassPropertyAccess option (#2622) (bbc9e35)
  • eslint-plugin: [prefer-readonly-parameter-types] add ignoreInferredTypes option (#2668) (91010e8)
  • eslint-plugin: [restrict-plus-operands] add intersection type determination logic (#2628) (da71362)
  • typescript-estree: add flag EXPERIMENTAL_useSourceOfProjectReferenceRedirect (#2669) (90a5878)

4.4.1 (2020-10-12)

Bug Fixes

  • eslint-plugin: [ban-ts-comment] support block comments (#2644) (9c3c686)
  • eslint-plugin: [ban-types] allow banning types with specific parameters (#2662) (77732a2)
  • eslint-plugin: [consistent-type-assertions] check type assertion in jsx props (#2653) (393e925)
  • eslint-plugin: [no-duplicate-imports] distinguish member, default (#2637) (c71f423)
  • eslint-plugin: [no-throw-literal] false positive with logical expressions (#2645) (57aa6c7)
  • eslint-plugin: [no-unused-vars] fix false positives for duplicated names in namespaces (#2659) (0d696c7)
  • eslint-plugin: [no-use-before-define] correctly handle typeof type references (#2623) (8e44c78)
  • scope-manager: don't create a variable for global augmentation (#2639) (6bc9325)

4.4.0 (2020-10-05)

Features

  • eslint-plugin: add consistent-indexed-object-style rule (#2401) (d7dc108)
  • eslint-plugin: add extension rule no-duplicate-imports (#2609) (498f397)

4.3.0 (2020-09-28)

Bug Fixes

  • eslint-plugin: added safe getTypeOfPropertyOfType wrapper (#2567) (7cba2de)
  • experimental-utils: treat RuleTester arrays as readonly (#2601) (8025777)

Features

  • eslint-plugin: [no-invalid-void-type] add option to allow this: void (#2481) (ddf5660)

4.2.0 (2020-09-21)

Bug Fixes

  • eslint-plugin: [naming-convention] ignore properties inside object patterns (#2566) (53a3cbc)
  • eslint-plugin: [prefer-ts-expect-error] support block comments (#2541) (c6f72fb)
  • scope-manager: correct analysis of inferred types in conditional types (#2537) (4f660fd)

Features

  • eslint-plugin: add extension rule comma-dangle (#2416) (f7babcf)

4.1.1 (2020-09-14)

Bug Fixes

  • eslint-plugin: [naming-convention] allow an array of selectors with types and modifiers (#2415) (7ca54c3)
  • eslint-plugin: [no-implied-eval] handle the Function type (#2435) (e1401dc)
  • eslint-plugin: [no-unused-vars] better handling for declared modules (#2553) (02d72d4), closes #2523
  • eslint-plugin: [no-use-before-define] false positive for function type arguments (#2554) (189162d), closes #2527
  • eslint-plugin: [prefer-function-type] handle this return (#2437) (7c6fcee)
  • eslint-plugin: [return-await] don't error for in-try-catch if the return is in a catch without a finally (#2356) (efdd521)

4.1.0 (2020-09-07)

Bug Fixes

  • eslint-plugin: [explicit-module-boundary-types] cyclical reference infinite recursion crash (#2482) (8693653)
  • eslint-plugin: [no-unused-vars] correct detection of unused vars in a declared module with export = (#2505) (3d07a99)
  • eslint-plugin: [no-unused-vars] properly handle ambient declaration exports (#2496) (4d3ce5f)
  • eslint-plugin: [no-use-before-define] false positive with jsx pragma reference (#2503) (5afeeab), closes #2502
  • eslint-plugin: [typedef] false positive for rest parameter with array destructuring (#2441) (2ada5af)
  • eslint-plugin: handle missing message IDs in eslint v5/v6 (#2461) (ffdfade)
  • scope-manager: add const as a global type variable (#2499) (eb3f6e3)
  • scope-manager: correctly handle inferred types in nested type scopes (#2497) (95f6bf4)
  • scope-manager: don't create references for intrinsic JSX elements (#2504) (cdb9807)
  • scope-manager: support rest function type parameters (#2491) (9d8b4c4), closes #2449
  • scope-manager: support tagged template string generic type parameters (#2492) (a2686c0)
  • scope-manager: support type predicates (#2493) (a40f54c), closes #2462
  • scope-manager: treat type imports as both values and types (#2494) (916e95a), closes #2453

Features

  • eslint-plugin: [no-shadow] add option ignoreFunctionTypeParameterNameValueShadow (#2470) (bfe255f)
  • eslint-plugin: add extension rule no-loop-func (#2490) (36305df)
  • scope-manager: add support for JSX scope analysis (#2498) (f887ab5), closes #2455 #2477

4.0.1 (2020-08-31)

Bug Fixes

4.0.0 (2020-08-31)

Please see the release notes for v4.0.0

Bug Fixes

  • eslint-plugin: [no-shadow] fix false-positive on enum declaration (#2374) (9de669f)
  • eslint-plugin: [no-unused-vars] handle TSCallSignature (#2336) (c70f54f)
  • correct decorator traversal for AssignmentPattern (#2375) (d738fa4)
  • scope-manager: correct analysis of abstract class properties (#2420) (cd84549)
  • typescript-estree: correct ChainExpression interaction with parentheses and non-nulls (#2380) (762bc99)

Features

  • consume new scope analysis package (#2039) (3be125d)
  • support ESTree optional chaining representation (#2308) (e9d2ab6)
  • eslint-plugin: [ban-ts-comment] change default for ts-expect-error to allow-with-description (#2351) (a3f163a), closes #2146
  • eslint-plugin: [no-unnecessary-condition][strict-boolean-expressions] add option to make the rules error on files without strictNullChecks turned on (#2345) (9273441)
  • eslint-plugin: [typedef] remove all defaults (#2352) (a9cd6fb)
  • eslint-plugin: add consistent-type-imports rule (#2367) (58b1c2d)

BREAKING CHANGES

    • Removed decorators property from several Nodes that could never semantically have them (FunctionDeclaration, TSEnumDeclaration, and TSInterfaceDeclaration)
  • Removed AST_NODE_TYPES.Import. This is a minor breaking change as the node type that used this was removed ages ago.
  • eslint-plugin: Default rule options is a breaking change.

3.10.1 (2020-08-25)

Bug Fixes

  • eslint-plugin: [no-unnecessary-condition] correct regression with unary negations (#2422) (d1f0887), closes #2421

3.10.0 (2020-08-24)

Bug Fixes

  • eslint-plugin: [explicit-module-boundary-types] ignore abstract setters (#2410) (3764248)
  • eslint-plugin: [explicit-module-boundary-types] ignore all bodyless setters (#2413) (a53f8c6)
  • eslint-plugin: [no-unnecessary-condition] better handling for unary negation (#2382) (32fe2bb)

Features

  • eslint-plugin: add no-implicit-any-catch rule (#2202) (fde89d4)

3.9.1 (2020-08-17)

Bug Fixes

  • eslint-plugin: [no-unnecessary-condition] fix false positive with nullish coalescing (#2385) (092c969)
  • eslint-plugin: [prefer-includes] don't auto fix when test method's argument type doesn't have an 'includes' method (#2391) (71c4c72)

3.9.0 (2020-08-10)

Bug Fixes

  • eslint-plugin: [no-throw-literal] support type assertions (#2354) (470174a)

Features

  • eslint-plugin: [no-unsafe-assignment/return] allow assigning any => unknown (#2371) (e7528e6)
  • typescript-estree: support TSv4 labelled tuple members (#2378) (00d84ff)

3.8.0 (2020-08-03)

Bug Fixes

  • eslint-plugin: [no-implied-eval] don't report when Function is imported (#2348) (fa169e7)
  • eslint-plugin: [no-unsafe-assignment] fix typo in message (#2347) (2027bb1)

Features

  • eslint-plugin: [naming-convention] allow specifying an array of selectors (#2335) (3ef6bd5)
  • eslint-plugin: add prefer-enum-initializers rule (#2326) (4f38ea3)

3.7.1 (2020-07-27)

Bug Fixes

  • eslint-plugin: [adjacent-overload-signatures] fix false positive on call signatures and a method named call (#2313) (30fafb0)
  • eslint-plugin: [no-extra-parens] stop reporting on calling generic functions with one argument and type parameters containing parentheses (#2319) (616a841)

3.7.0 (2020-07-20)

Features

  • eslint-plugin: [naming-convention] allow selecting only const variables (#2291) (156d058)
  • eslint-plugin: [no-empty-function] add decoratedFunctions option (#2295) (88f08f4)

3.6.1 (2020-07-13)

Bug Fixes

  • eslint-plugin: [no-unnecessary-condition] handle computed member access (#2288) (3a187ca)
  • eslint-plugin: [prefer-literal-enum-member] allow negative numbers (#2277) (00ac9c3)
  • eslint-plugin: [space-before-function-paren] incorrect handling of abstract methods (#2275) (ced6591), closes #2274
  • eslint-plugin: [switch-exhaustiveness-check] handle special characters in enum keys (#2207) (98ab010)

3.6.0 (2020-07-06)

Bug Fixes

  • eslint-plugin: [no-namespace] allow namespaces in nested declarations with allowDeclarations (#2238) (c1df669)
  • eslint-plugin: [space-before-function-paren] handle abstract functions (#2199) (88a3edf)

Features

  • eslint-plugin: add rule prefer-literal-enum-member (#1898) (fe2b2ec)

3.5.0 (2020-06-29)

Bug Fixes

  • eslint-plugin: [naming-convention] support unicode in regex (#2241) (5fdd21a)

Features

3.4.0 (2020-06-22)

Bug Fixes

  • eslint-plugin: [no-base-to-string] handle intersection types (#2170) (9cca3a9)
  • eslint-plugin: [unbound-method] handling destructuring (#2228) (c3753c2)

Features

  • eslint-plugin: [no-unnecessary-boolean-literal-compare] add option to check nullable booleans (#1983) (c0b3057)
  • eslint-plugin: add extension rule no-loss-of-precision (#2196) (535b0f2)

3.3.0 (2020-06-15)

Bug Fixes

  • eslint-plugin: [no-unused-expressions] handle ternary and short-circuit options (#2194) (ee9f100)

Features

  • eslint-plugin: [naming-convention] better error message and docs for prefix/suffix (#2195) (a2ffe55)

3.2.0 (2020-06-08)

Bug Fixes

  • eslint-plugin: [explicit-module-boundary-types] dont report return type errors on constructor overloads (#2158) (53232d7)
  • eslint-plugin: [explicit-module-boundary-types] handle bodyless arrow functions with explicit return types that return functions (#2169) (58db655)
  • eslint-plugin: [explicit-module-boundary-types] handle nested functions and functions expressions in a typed variable declaration (#2176) (6ff450d)
  • eslint-plugin: [no-extra-non-null-assertion] dont report for assertions not followed by the optional chain (#2167) (e4c1834)
  • eslint-plugin: [no-unnecessary-conditionals] Handle comparison of generics and loose comparisons with undefined values (#2152) (c86e2a2)
  • eslint-plugin: [prefer-optional-chain] handling first member expression (#2156) (de18660)
  • eslint-plugin: [return-await] correct handling of ternaries (#2168) (fe4c0bf)

Features

  • eslint-plugin: [naming-convention] put identifiers in quotes in error messages (#2182) (fc61932), closes #2178
  • eslint-plugin: [require-array-sort-compare] add ignoreStringArrays option (#1972) (6dee784)
  • eslint-plugin: add rule ban-tslint-comment (#2140) (43ee226)
  • eslint-plugin: add rule no-confusing-non-null-assertion (#1941) (9b51c44)

3.1.0 (2020-06-01)

Bug Fixes

  • eslint-plugin: [explicit-module-boundary-types] don't check returned functions if parent function has return type (#2084) (d7d4eeb)
  • eslint-plugin: [no-unnecessary-condition] handle comparison of any, unknown and loose comparisons with nullish values (#2123) (1ae1d01)
  • eslint-plugin: [no-unnecessary-condition] improve optional chain handling (#2111) (9ee399b)
  • eslint-plugin: [no-unnecessary-condition] improve optional chain handling 2 - electric boogaloo (#2138) (c87cfaf)
  • eslint-plugin: [no-unused-expressions] ignore import expressions (#2130) (e383691)
  • eslint-plugin: [no-var-requires] false negative for TSAsExpression and MemberExpression (#2139) (df95338)
  • experimental-utils: downlevel type declarations for versions older than 3.8 (#2133) (7925823)

Features

  • eslint-plugin: [ban-ts-comments] add "allow-with-description" option (#2099) (8a0fd18)
  • eslint-plugin: [ban-types] allow selective disable of default options with false value (#2137) (1cb8ca4)
  • eslint-plugin: [explicit-module-boundary-types] improve accuracy and coverage (#2135) (caaa859)

3.0.2 (2020-05-27)

Note: Version bump only for package @typescript-eslint/eslint-plugin

3.0.1 (2020-05-25)

Bug Fixes

  • eslint-plugin: [naming-convention] handle no options correctly (#2095) (fd7d02b)
  • eslint-plugin: [no-throw-literal] handle intersection and union types (#2085) (cae037f)
  • eslint-plugin: [unbound-method] fix crash due to missing Intl (#2090) (f2fa82c)

3.0.0 (2020-05-21)

Please see the release notes for v3.0.0

Bug Fixes

  • eslint-plugin: [dot-notation] fix typo in schema (#2040) (242328f)
  • eslint-plugin: correct parser peerDep version (fe59f69)
  • experimental-utils: add back SourceCode.isSpaceBetweenTokens (ae82ea4)
  • typescript-estree: remove now defunct Import node type (f199cbd)
  • typescript-estree: use TSEmptyBodyFunctionExpression for body-less nodes (#1289) (82e7163)

Features

  • eslint-plugin: [ban-types] rework default options (#848) (8e31d5d)
  • eslint-plugin: [no-floating-promises] ignore void operator by default (#2003) (3626a67)
  • eslint-plugin: [prefer-nullish-coalescing][prefer-optional-chain] remove unsafe fixers (52b6085)
  • experimental-utils: upgrade eslint types for v7 (#2023) (06869c9)
  • upgrade to ESLint v7 (#2022) (208de71)
  • eslint-plugin: [no-unnecessary-condition] remove checkArrayPredicates and always check it (#1579) (bfd9b60)
  • eslint-plugin: [no-unnecessary-condition] remove option ignoreRHS (#1163) (ee8dd8f)
  • eslint-plugin: [no-unnecessary-condition] report when non-nullish is compared to null/undefined (#1659) (7fa9060)
  • eslint-plugin: [restrict-template-expressions] allowNumber: true by default (#2005) (643ec24)
  • eslint-plugin: [restrict-template-expressions] rename allowNullable to allowNullish (#2006) (264b017)
  • eslint-plugin: [strict-boolean-expression] rework options (#1631) (cd14482)
  • eslint-plugin: delete deprecated rules (#2002) (da0aec2)
  • eslint-plugin: eslint-recommended: disable no-func-assign (#984) (ae9b8a9)
  • eslint-plugin: eslint-recommended: disable no-obj-calls (#1000) (b9ca14c)
  • eslint-plugin: update eslint-recommended set (#1996) (9a96e18)
  • eslint-plugin: update recommended sets (#2001) (0126b4f)
  • typescript-estree: align nodes with estree 2020 (#1389) (aff5b62)
  • drop support for node v8 (#1997) (b6c3b7b)
  • typescript-estree: always return parserServices (#716) (5b23443)
  • typescript-estree: handle 3.9's non-null assertion changes (#2036) (06bec63)

2.34.0 (2020-05-18)

Features

  • eslint-plugin: [no-invalid-void-type] allow union of void and allowInGenericTypeArguments (#1960) (1bc105a)
  • eslint-plugin: [restrict-template-expressions] improve error message (#1926) (1af59ba)
  • experimental-utils: add suggestion property for rule modules (#2033) (f42a5b0)

2.33.0 (2020-05-12)

Features

  • eslint-plugin: add extension rule lines-between-class-members (#1684) (08f93e6)

2.32.0 (2020-05-11)

Bug Fixes

  • eslint-plugin: [no-base-to-string] support boolean in unions (#1979) (6987ecc)
  • eslint-plugin: [no-type-alias] handle readonly types in aliases (#1990) (56d9870)
  • eslint-plugin: [no-unused-expressions] inherit messages from base rule (#1992) (51ca404)

Features

2.31.0 (2020-05-04)

Bug Fixes

  • eslint-plugin: [dot-notation] handle missing declarations (#1947) (383f931)
  • eslint-plugin: [method-signature-style] fix overloaded methods to an intersection type (#1966) (7f3fba3)
  • eslint-plugin: [return-await] await in a normal function (#1962) (f82fd7b)
  • eslint-plugin: [unbound-method] false positives for unary expressions (#1964) (b35070e)
  • eslint-plugin: no-base-to-string boolean expression detect (#1969) (f78f13a)

Features

  • eslint-plugin: [member-ordering] add decorators support (#1870) (f7ec192)
  • eslint-plugin: [prefer-optional-chain] added option to convert to suggestion fixer (#1965) (2f0824b)
  • eslint-plugin: new extended rule 'no-invalid-this' (#1823) (b18bc35)
  • experimental-utils: expose our RuleTester extension (#1948) (2dd1638)

2.30.0 (2020-04-27)

Bug Fixes

  • eslint-plugin: [prefer-string-starts-ends-with] check for negative start index in slice (#1920) (ed2bd60)
  • eslint-plugin: fix no-base-to-string boolean literal check (#1850) (2f45e99)

Features

  • eslint-plugin: add extension rule dot-notation (#1867) (a85c3e1)
  • eslint-plugin: create no-invalid-void-type rule (#1847) (f667ff1)

2.29.0 (2020-04-20)

Bug Fixes

  • eslint-plugin: [no-base-to-string] soft remove ignoreTaggedTemplateExpressions option (#1916) (369978e)

Features

  • eslint-plugin: [no-floating-promise] add option to ignore IIFEs (#1799) (cea51bf)
  • eslint-plugin: [restrict-template-expressions] add support for intersection types (#1803) (cc70e4f)
  • eslint-plugin: add extension rule init-declarations (#1814) (b01f5e7)
  • eslint-plugin: add extension rule keyword-spacing (#1739) (c5106dd)

2.28.0 (2020-04-13)

Bug Fixes

  • eslint-plugin: [method-signature-style] handle multiline params (#1861) (5832a86)
  • eslint-plugin: [no-empty-interface] use suggestion fixer for ambient contexts (#1880) (62b2278)
  • eslint-plugin: [unbound-method] false positive on property function initializer (#1890) (f1c3b18)
  • eslint-plugin: [unbound-method] ignore assignments to methods (#1736) (6b4680b)
  • eslint-plugin: no-empty-interface autofix (#1865) (829a2f7), closes #1864
  • eslint-plugin: use isTypeArrayTypeOrUnionOfArrayTypes util for checking if type is array (#1728) (05030f8)

Features

  • eslint-plugin: [ban-ts-comment] support ts-expect-error (#1706) (469cff3)
  • eslint-plugin: [consistent-type-assertions] always allow const assertions (#1713) (af2c00d)
  • eslint-plugin: [explicit-function-return-type] add option to allow concise arrows that start with void (#1732) (2e9c202)
  • eslint-plugin: [explicit-module-boundary-types] add optio… (#1778) (3eee804)
  • eslint-plugin: [no-base-to-string] add option to ignore tagged templates (#1763) (f5edb99)
  • eslint-plugin: [restrict-template-expressions] add option allowAny (#1762) (d44c0f9)
  • eslint-plugin: add rule prefer-reduce-type-parameter (#1707) (c92d240)
  • eslint-plugin: add rule prefer-ts-expect-error (#1705) (7021f21)
  • eslint-plugin: add rule no-unsafe-assignment (#1694) (a49b860)

2.27.0 (2020-04-06)

Bug Fixes

  • eslint-plugin: [no-throw-literal] fix crash caused by getBaseTypes (#1830) (9d53c76)
  • eslint-plugin: [no-unsafe-call] fix incorrect selector (#1826) (8ec53a3)
  • eslint-plugin: [require-await] handle async generators (#1782) (9642d9d)
  • eslint-plugin: no-explicit-any constructor functions (& mo… (#1711) (ab8572e)

Features

  • eslint-plugin: new rule method-signature-style (#1685) (c49d771)
  • eslint-plugin: sort members alphabetically (#263) (485e902)
  • eslint-plugin-internal: add plugin-test-formatting rule (#1821) (9b0023a)

2.26.0 (2020-03-30)

Bug Fixes

  • eslint-plugin: [no-explicit-any] error with ignoreRestArgs (#1796) (638d84d)
  • eslint-plugin: [no-unsafe-call] allow import expressions (#1800) (4fa7107)
  • eslint-plugin: [no-unsafe-return] error with <TS3.7 (#1815) (f3160b4)

2.25.0 (2020-03-23)

Bug Fixes

  • eslint-plugin: [quotes] false positive with backtick in import equals statement (#1769) (199863d)
  • eslint-plugin: fix message of no-base-to-string (#1755) (6646959)

Features

  • eslint-plugin: [no-unnec-type-assertion] allow const assertions (#1741) (f76a1b3)
  • eslint-plugin: [no-unnecessary-condition] ignore basic array indexing false positives (#1534) (2b9603d)
  • eslint-plugin: add class-literal-property-style rule (#1582) (b2dbd89)
  • experimental-utils: expose ast utility functions (#1670) (3eb5d45)

2.24.0 (2020-03-16)

Note: Version bump only for package @typescript-eslint/eslint-plugin

2.23.0 (2020-03-09)

Bug Fixes

  • eslint-plugin: [prefer-readonly-parameter-types] handle recursive types (#1672) (e5db36f), closes #1665
  • eslint-plugin: [type-annotation-spacing] handle constructor types (#1664) (fbf1640), closes #1663
  • eslint-plugin: fix autofixer for computed properties (#1662) (ba22ea7)
  • eslint-plugin: fix placeholder in ban-ts-comment (#1703) (144345c)

Features

  • eslint-plugin: [no-unsafe-call] support tagged templates (#1680) (55a58ff)
  • eslint-plugin: [no-unsafe-member-access] report any typed… (#1683) (1543117)
  • eslint-plugin: add rule no-unsafe-call (#1647) (91423e4)
  • eslint-plugin: add rule no-unsafe-member-access (#1643) (608a750)
  • eslint-plugin: add rule no-unsafe-return (#1644) (cfc3ef1)

2.22.0 (2020-03-02)

Bug Fixes

  • eslint-plugin: [ban-types] add option extendDefaults (#1379) (ae7f7c5)
  • eslint-plugin: [default-param-last] handle param props (#1650) (3534c6e)
  • eslint-plugin: [no-implied-eval] correct logic for ts3.8 (#1652) (33e3e6f)

Features

  • eslint-plugin: [explicit-member-accessibility] autofix no-public (#1548) (dd233b5)
  • eslint-plugin: [typedef] add variable-declaration-ignore-function (#1578) (fc0a55e)
  • eslint-plugin: add new no-base-to-string rule (#1522) (8333d41)
  • eslint-plugin: add prefer-readonly-parameters (#1513) (3be9854)
  • eslint-plugin: additional annotation spacing rules for va… (#1496) (b097245)

2.21.0 (2020-02-24)

Bug Fixes

  • eslint-plugin: [embt] ignore JSX callbacks (#1630) (4d45b33)
  • eslint-plugin: [no-floating-promises] handle finally callback (#1620) (1aa7135)
  • eslint-plugin: [typedef] allow array/object destructuring in for/of (#1570) (660bace)

Features

  • eslint-plugin: [require-await] add --fix support (#1561) (9edd863)

2.20.0 (2020-02-17)

Features

  • eslint-plugin: [ban-types] allow banning null and undefined (#821) (0b2b887)
  • eslint-plugin: [strict-boolean-expressions] refactor, add clearer error messages (#1480) (db4b530)

2.19.2 (2020-02-10)

Note: Version bump only for package @typescript-eslint/eslint-plugin

2.19.1 (2020-02-10)

Bug Fixes

  • eslint-plugin: [unbound-method] blacklist a few unbound natives (#1562) (4670aab)

2.19.0 (2020-02-03)

Bug Fixes

  • eslint-plugin: [embt] fix allowTypedFunctionExpressions (#1553) (9e7d161)
  • eslint-plugin: [require-await] improve performance (#1536) (45ae0b9)

Features

  • eslint-plugin: [no-extra-non-null-assert] add fixer (#1468) (54201ab)
  • eslint-plugin: [no-float-prom] fixer + msg for ignoreVoid (#1473) (159b16e)
  • eslint-plugin: [unbound-method] support bound builtins (#1526) (0a110eb)
  • eslint-plugin: add extension [no-dupe-class-members] (#1492) (b22424e)
  • eslint-plugin: add no-unnecessary-boolean-literal-compare (#242) (6bebb1d)
  • eslint-plugin: add switch-exhaustiveness-check rule (#972) (9e0f6dd)
  • eslint-plugin: support negative matches for filter (#1517) (b24fbe8)

2.18.0 (2020-01-27)

Bug Fixes

  • eslint-plugin: [explicit-module-boundary-types] false positive for returned fns (#1490) (5562ad5)
  • improve token types and add missing type guards (#1497) (ce41d7d)
  • eslint-plugin: [naming-convention] fix filter option (#1482) (718cd88)
  • eslint-plugin: fix property access on undefined error (#1507) (d89e8e8)

Features

  • eslint-plugin: add comma-spacing (#1495) (1fd86be)
  • eslint-plugin: add new rule prefer-as-const (#1431) (420db96)
  • eslint-plugin: create ban-ts-comment rule (#1361) (2a83d13)
  • experimental-utils: make RuleMetaData.docs optional (#1462) (cde97ac)

2.17.0 (2020-01-20)

Bug Fixes

  • eslint-plugin: [naming-convention] handle empty array-pattern (#1450) (4726605)
  • eslint-plugin: [unbound-method] handling of logical expr (#1440) (9c5b857)
  • eslint-plugin: set default-param-last as an extension rule (#1445) (b5ef704)
  • typescript-estree: correct type of ArrayPattern.elements (#1451) (62e4ca0)

Features

  • eslint-plugin: [naming-convention] allow not check format (#1455) (61eb434)
  • eslint-plugin: [naming-convention] correct example (#1455) (60683d7)
  • eslint-plugin: [no-extra-!-assert] flag ?. after !-assert (#1460) (58c7c25)
  • eslint-plugin: add explicit-module-boundary-types rule (#1020) (bb0a846)
  • eslint-plugin: add no-non-null-asserted-optional-chain (#1469) (498aa24)
  • experimental-utils: expose getParserServices from utils (#1448) (982c8bc)

2.16.0 (2020-01-13)

Bug Fixes

  • eslint-plugin: [no-magic-numbers] handle UnaryExpression for enums (#1415) (852fc31)
  • eslint-plugin: [no-unnec-type-assert] handle JSX attributes (#1002) (3c5659b)
  • eslint-plugin: handle error classes using generics (#1428) (b139540)
  • typescript-estree: resolve path relative to tsconfigRootDir (#1439) (c709056)

Features

  • eslint-plugin: [no-unnec-cond] array predicate callbacks (#1206) (f7ad716)
  • eslint-plugin: add default-param-last rule (#1418) (a37ff9f)
  • eslint-plugin: add rule naming-conventions (#1318) (9eab26f)
  • typescript-estree: add strict type mapping to esTreeNodeToTSNodeMap (#1382) (d3d70a3)

2.15.0 (2020-01-06)

Bug Fixes

  • eslint-plugin: crash in no-unnecessary-type-arguments (#1401) (01c939f)

Features

  • eslint-plugin: [strict-bool-expr] add allowSafe option (#1385) (9344233)
  • eslint-plugin: add no-implied-eval (#1375) (254d276)

2.14.0 (2019-12-30)

Bug Fixes

  • eslint-plugin: type assertion in rule no-extra-parens (#1376) (f40639e)

Features

  • add internal eslint plugin for repo-specific lint rules (#1373) (3a15413)

2.13.0 (2019-12-23)

Bug Fixes

  • eslint-plugin: [quotes] ignore backticks for Enum members (#1355) (e51048c)
  • eslint-plugin: [type-annotation-spacing] typo in messages (#1354) (82e0dbc)
  • eslint-plugin: add isTypeAssertion utility function (#1369) (bb1671e)
  • eslint-plugin: use AST_NODE_TYPES enum instead of strings (#1366) (bd0276b)

Features

  • eslint-plugin: [ban-types] handle empty type literal {} (#1348) (1c0ce9b)
  • eslint-plugin: [no-use-before-define] opt to ignore enum (#1242) (6edd911)
  • eslint-plugin: [pref-str-starts/ends-with] optional chain… (#1357) (fd37bc3)
  • eslint-plugin: add no-extra-semi [extension] (#1237) (425f65c)
  • eslint-plugin: add no-throw-literal [extension] (#1331) (2aa696c)
  • eslint-plugin: more optional chain support in rules (#1363) (3dd1b02)
  • typescript-estree: computed members discriminated unions (#1349) (013df9a)
  • typescript-estree: tighten prop name and destructure types (#1346) (f335c50)

2.12.0 (2019-12-16)

Bug Fixes

  • eslint-plugin: [prefer-null-coal] fixer w/ mixed logicals (#1326) (f9a9fbf)
  • eslint-plugin: [quotes] ignore backticks for interface properties (#1311) (3923a09)

Features

  • eslint-plugin: [no-unnec-cond] check optional chaining (#1315) (a2a8a0a)

2.11.0 (2019-12-09)

Bug Fixes

  • eslint-plugin: [brace-style] handle enum declarations (#1281) (3ddf1a2)

Features

  • eslint-plugin: [member-ordering] add index signature (#1190) (b5a52a3)

2.10.0 (2019-12-02)

Bug Fixes

  • eslint-plugin: [no-empty-function] add missed node types (#1271) (e9d44f5)
  • eslint-plugin: [no-untyped-pub-sig] ignore set return (#1264) (6daff10)
  • eslint-plugin: [no-unused-expressions] ignore directives (#1285) (ce4c803)
  • eslint-plugin: [prefer-optional-chain] allow $ in identifiers (c72c3c1)
  • eslint-plugin: [prefer-optional-chain] handle more cases (#1261) (57ddba3)
  • eslint-plugin: [return-await] allow Any and Unknown (#1270) (ebf5e0a)
  • eslint-plugin: [strict-bool-expr] allow nullish coalescing (#1275) (3b39340)

Features

  • eslint-plugin: [no-empty-func] private/protected construct (#1267) (3b931ac)
  • eslint-plugin: [no-non-null-assert] add suggestion fixer (#1260) (e350a21)
  • eslint-plugin: [no-unnec-cond] support nullish coalescing (#1148) (96ef1e7)
  • eslint-plugin: [prefer-null-coal] opt for suggestion fixer (#1272) (f84eb96)

2.9.0 (2019-11-25)

Bug Fixes

  • eslint-plugin: [no-dynamic-delete] correct invalid fixer for identifiers (#1244) (5b1300d)
  • eslint-plugin: [no-untyped-pub-sig] constructor return (#1231) (6cfd468)
  • eslint-plugin: [prefer-optional-chain] unhandled cases (b1a065f)
  • eslint-plugin: [req-await] crash on nonasync promise return (#1228) (56c00b3)

Features

  • eslint-plugin: [camelcase] add genericType option (#925) (d785c61)
  • eslint-plugin: [no-empty-interface] noEmptyWithSuper fixer (#1247) (b91b0ba)
  • eslint-plugin: [no-extran-class] add allowWithDecorator opt (#886) (f1ab9a2)
  • eslint-plugin: [no-unnece-cond] Add allowConstantLoopConditions (#1029) (ceb6f1c)
  • eslint-plugin: [restrict-plus-operands] check += (#892) (fa88cb9)
  • suggestion types, suggestions for no-explicit-any (#1250) (b16a4b6)
  • eslint-plugin: add no-extra-non-null-assertion (#1183) (2b3b5d6)
  • eslint-plugin: add no-unused-vars-experimental (#688) (05ebea5)
  • eslint-plugin: add prefer-nullish-coalescing (#1069) (a9cd399)
  • eslint-plugin: add return-await rule (#1050) (0ff4620)
  • eslint-plugin: add rule prefer-optional-chain (#1213) (ad7e1a7)
  • eslint-plugin: optional chain support in rules (part 1) (#1253) (f5c0e02)

2.8.0 (2019-11-18)

Bug Fixes

  • eslint-plugin: [camelcase] handle optional member expr (#1204) (9c8203f)
  • eslint-plugin: [indent] fix decorator type (#1189) (e2008e3)
  • eslint-plugin: [indent] handle empty generic declarations (#1211) (9aee06c)
  • eslint-plugin: [no-type-alias] handle constructor aliases (#1198) (