Changelog
v5.10.0
prefer-while
(#3750)comment-format
(#3845)"allow-empty-functions"
for no-empty
rule (#3624)promise-function-async
specifying what kinds of functions to check (#3807)file-header
rule plays nice with no-trailing-whitespace
rule (#3802)no-unbound-method
rule allows square bracket property access (#3610)no-unsafe-any
no longer marks native JSX elements as unsafe (#3699)file-header
auto-fixes use '!' character to ensure header stays above imports (#3741)no-unused-variable
rule (#3831)Thanks to our contributors!
Changelog
v5.9.1
tslint:recommended
or tslint:latest
by disabling typeof-compare
in these rulesets. (#3639)rulesDirectory
paths, which fixes usage with tslint-loader. (#3640)Changelog
v5.9.0
src/language/utils.ts
have been deprecated (#3476)Significant changes have been made to configuration inheritance to address a long-standing UX issue around defaultSeverity
: #2569.
defaultSeverity
defined in a tslint.json
file will now override the defaultSeverity
value defined in any configurations you are extending.
This means that any rules specified in the base configurations can now take on a new defaultSeverity
if you so choose. If you extend multiple
configuration files, the defaultSeverity
defined in the last one wins.
In practice, this allows users to, for example, more easily use the built-in TSLint configurations (tslint:recommended
, tslint:latest
, tslint:all
)
and treat all errors as warnings instead of errors.
For more details, see the relevant PRs:
defaultSeverity
defined in extended configs (#3449)file-header
(#3475)no-dynamic-delete
(#3573)prefer-readonly
(#2896)newline-per-chained-call
(#3278)"temporalDeadZone"
for no-shadowed-variable
to ignore shadowing in the temporal dead zone of classes, parameters, enums and variables declared with let
or const
(#3389)"shorthand-first"
for object-literal-sort-keys
(#3607)max-line-length
(#3099)--project
excludes all files of external dependencies (#3320)tsconfig.json
is invalid (#3410)no-implicit-dependencies
don't crash on malformed package.json (#3373)strict-type-predicates
allows comparing typeof result with non-literals (#3542)no-redundant-jsdoc
fixed crash on unhandled tag (#3414)object-literal-sort-keys
fixed regression that effectively disabled the rule with \r\n
line breaks (#3427)curly
fixer now correctly handles comments (#3473)no-unsafe-any
fixed false-positive with namespaced types (#3487)no-any
(#3486)no-unnecessary-type-assertion
fixed false negatives for types with numeric keys (#3468)callable-types
adds parentheses when fixing a type literal inside an array type (#3440)no-unsafe-any
allows spreading an any
value into an object (#3439)arrow-parens
fixer (#3618)prefer-const
false negative with index signature named like a variable (#3385)whitespace
rule checks property declarations if "check-decl"
is enabled (#3546)no-duplicate-super
rule. (#3544)no-shadowed-variable
now excludes declaration files and ambient modules (#3387)no-duplicate-imports
Allow duplicate imports from separate ambient module declarations (#3398)await-promise
correctly recognises classes extending Promise (#3383)prefer-conditional-expression
: don't repeat error on nested if statements (#3528)completed-docs
: don't require documentation on methods in object literals (#3532)one-line
fixed crash on syntax error in class or interface (#3538)no-redundant-jsdoc
allow @template
tag if it has a description (#3415)typeof-compare
(#3429)"properties"
option for completed-docs
rule now checks getter and setter accessors. (#3497)no-magic-numbers
ignores parseInt radix parameter (#3536)--project
option (#3313)stylish
-formatter's output jumps to the first failure in that file. (#3491)ban-comma-operator
ignores comma operator inside for-loop incrementor (#3485)space-within-parens
updated to always allow empty parentheses ()
. (#3513)completed-docs
modifier lists (#3379)ban-comma-operator
(#3384)completed-docs
rule to use a function instead of a walker (#3466)ban-comma-operator
: fix metadata, list as "functionality" rule (#3612)no-use-before-declare
documentation to clarify the rule's status (#3520)await-promise
options documentation (#3519)hasFix
metadata for the indent
rule (#3529)no-irregular-whitespace
(#3627)Thanks to our contributors!
Changelog
v5.8.0
typeof-compare
is deprecated because typescript already does that check (#3286)--type-check
is no longer necessary and will be removed in the next major version (#3322)tslint:latest
configuration+ "ban-comma-operator": true,
+ "jsdoc-format": {
+ options: "check-multiline-start",
+ },
+ "no-duplicate-switch-case": true,
+ "no-implicit-dependencies": true,
+ "no-return-await": true,
linterOptions
configuration field to tslint.json
, which supports a list of exclude
globs to disable linting for a subset of files (#2409)no-return-await
(#3233)no-redundant-jsdoc
(#2754)no-duplicate-switch-case
(#2937)no-implicit-dependencies
(#3343)no-unnecessary-class
(#3119)ban-comma-operator
(#3250)one-line
(#3200)curly
(#3262)jsdoc-format
adds option "check-multiline-start"
to enforce the first line of a multiline JSDoc comment to be empty. (#3181)trailing-comma
adds option "esSpecCompliant"
to make it compatible with the ES spec regarding trailing commas after object/array rest and rest parameters. (#3176)"check-parameter-property"
option for member-access
rule (#3325)"strict-bound-class-methods"
option for semicolon
rule (#3294)"grouped-imports"
option for ordered-imports
rule (#3138)"ignore-blank-lines"
option for no-trailing-whitespace
rule (#3346)"never"
option for object-literal-shorthand
disallows shorthand notation (#3268)"exclude-class-expressions"
option for max-classes-per-file
rule (#3281)no-unnecessary-type-assertion
supports a whitelist of types to ignore (#3257)"module-source-path"
for ordered-imports
allows sorting imports by trailing end of path (#3178)no-empty-interface
allows providing type arguments for extended type (#3260)return-undefined
handles union return types in async functions (#3298)deprecation
checks correct constructor overload (#3203)return-undefined
declared return type takes precedence over contextual type (#3298)inputFilePath
as an optional parameter in Configuration.findConfiguration()
(#3195)return-undefined
fixed regressions: once again allows anything if return type is any
(#3298)only-arrow-functions
allow function if this
is used in parameter initializer (#3315)no-conditional-assignment
: exclude intentional assignments, e.g. inside functions (#2629)no-angle-bracket-type-assertion
fixer adds parentheses when necessary (#3301)no-angle-bracket-type-assertion
fixed order when autofixing consecutive assertions (#3301)vso
formatter no longer duplicates output for fixed failures (#3348)no-unbound-method
: Allow negation of method (#3349)arrow-parens
with option "ban-single-arg-parens"
no longer produces invalid code when fixed (#3247)tslint.json
stopped at the current directory. (#3309)--test
works correctly with any compilerOptions.target
(#3296)whitepace
handles files with BOM and other irregular whitespace (#3305)callable-types
auto fix produces invalid results (#3342)no-string-literal
correctly fix property names with leading underscores (#3184)variable-name
fixed crash on empty variable name (#3292)trailing-comma
fixed crash on arrow function without parens (#3246)space-before-function-paren
for anonymous/arrow generic functions (#3085)no-unused-variable
along with the noUnusedLocals
and noUnusedParameters
compiler options (#3227)no-invalid-this
ignores functions with a this
param (#3267)import-blacklist
also checks exports and dynamic imports (#3258)no-conditional-assignment
added check for conditional (ternary) expressions (#2629)completed-docs
to list doc tags that mark a node as not requiring a documentation body. Tags can also provide a regexp matcher to validate that their contents are docs-valid. (#2415)await-promise
enforces that for-await-of
is only used with AsyncIterable
(#3297)one-line
checks type alias declarations (#3200)deprecation
checks object destructuring (#3318)no-submodule-imports
also checks exports (#3258)restrict-plus-operands
: More specific error message when arguments include strings (#3220)no-unsafe-any
checks more expressions, for example destructuring, yield
, property initializer (#3196)object-literal-sort-keys
: allow grouping of object properties via additional blank lines when using alphabetical ordering. (#3191)colors
module to chalk
module (#3171)no-unused-variable
applies the ignorePattern to imports (#3187)Thanks to our contributors!
Changelog
v5.7.0
no-parameter-reassignment
(#3045)object-literal-sort-keys
: Add match-declaration-order
option (#2829)check-type-operator
for whitespace
rule (#3083)whitespace
: Add check-rest-spread
option (#3089)AbstractRule#applyWithFunction
allows additional parameter that is passed through to walkFn
(#3140)AbstractRule#applyWithFunction
has better type checking for its type parameter (#2660)member-access
autofix now correcly inserts public
keyword after decorators (#3162)prefer-const
correctly handle catch
without binding parameter introduced in typescript@2.5.1
(#3151)no-invalid-template-strings
allows backslash-prefixed template expressions (#3116)deprecation
no longer shows errors on imports and exports (#3141)deprecation
: fix false positive when calling a function or method where another overload is deprecated (#2883)whitespace
: fixed "check-separator"
for trivial for
cases. (#3132)prefer-object-spread
prevent spreading this
as it is not allowed by the compiler (#3126)msbuild
formatter uses backslashes in paths on Windows (#3145)no-namespace
ignores global augmentation (#3161)no-submodule-imports
allows whitelisting of submodules like @angular/core/testing
(#3129)ts-node
(#3108)quotemark
no longer requires "single"
or "double"
to be the first option. The rule defaults to "double"
if none is specified. (#3114)no-unused-variable
autofix removes trailing comments of imports (#3156)no-unnecessary-type-assertion
allows certain necessary assertions to prevent type widening (#3120)Thanks to our contributors!
Changelog
v5.6.0
no-duplicate-imports
(#3075)no-submodule-imports
(#3091)space-within-parens
(#2959)member-access
(#2969)no-null-keyword
: fix x == null
to x == undefined
(#2802)no-shadowed-variable
let's you optionally ignore certain kinds of declarations (#3030)prefer-conditional-expression
adds check-else-if
(#2963)array-type
: consider this
to be simple type (#2982)await-promise
accepts not only union types but also intersection types with Promise-like types (#2987)callable-types
: don't remove export modifier of interfaces (#2962)completed-docs
: Only checks variables at the file-level. (#2950)completed-docs
: Uses correct visibility of variables. (#2950)no-floating-promises
: recognize rejection handler passed as second argument to promise.then()
(#3048)no-shadowed-variable
don't warn for shadowed type parameter on static class members (#3030)no-shadowed-variable
fixed false positive with key name in index signature (#3030)no-shadowed-variable
fixed false positive with parameter inside function decorator (#3030)no-unsafe-any
: allow truthyness and falsyness checks (#3008)no-unused-variable
fixed crash when using destructuring (#3058)one-line
correctly handles multiline type parameters (#3004)prefer-for-of
fixed false positives when array is modified, e.g. arr[i]++
(#3044)prefer-object-spread
adds parens when fixing arrow function return (#3026)prefer-object-spread
permit functions as first argument to Object.assign (#3098)space-before-function-paren
Handle default exports of functions without names like anonymous functions (fixes #3040) (#3053)./test/parse
could not be located due after consumers had run yarn clean
(#3072)no-null-keyword
allows strict comparison (#2802)no-switch-case-fall-through
matches // falls through
comments case insensitive and allows trailing text (#2983)ordered-imports
: support importEqualsDeclaration (#3102)no-inferrable-types
(#2885)prefer-conditional-expression
: ignore if-else-if
by default. Use the new "check-else-if"
option to check nested if statements (#2963)Thanks to our contributors!
Changelog
v5.5.0
Editor's note: This release features an important bugfix for overlapping fixes when using --project
and --fix
(#2864).
completed-docs
: Add enum-members
option (#2911)no-this-assignment
(#2931)encoding
closes files correctly (#2958)whitespace
fix whitespace "check-module"
to properly lint and fix errors (#2401) (#2825)whitespace
: now correctly handles dynamic imports introduced in typescript@2.4.0 (#2924)switch-final-break
: don't fail if break jumps to a label outside of the switch (#2914)no-shadowed-variable
: exempt this
parameter (#2598)prefer-for-of
correctly handles variable scopes and other unrelated identifiers (#2984)no-unused-variable
autofix removes whole import (#2901)-v
option (#2926)no-empty
(#2886)prefer-const
: handle destructuring in for-of loop initializer as if {"destructuring": "all"}
was specified (#2904)no-shadowed-variable
: added checks for other shadowing declarations, e.g. interfaces, classes, type parameters, imports, etc. (#2598)no-shadowed-variable
no longer fails for declarations in the same scope, e.g. var foo; var foo;
. Use the rule no-duplicate-variable
to find such errors. (#2598)Thanks to our contributors!
Changelog
v5.4.3
--out
file (#2867)unified-signatures
: Don't suggest to unify rest parameters. (#2874)binary-expression-operand-order
: Allow if both sides of the binary expression are literals. (#2873)whitespace
, space-before-function-paren
and deprecation
(#2893)no-string-literal
: Fix documentation (#2875)Changelog
v5.4.2
--exclude
options in the CLI (#2855)--version
CLI option (#2857)