Skip to content
This repository has been archived by the owner on Mar 25, 2021. It is now read-only.

Releases: palantir/tslint

v5.4.0

31 May 22:20
Compare
Choose a tag to compare

⭐️ Non-breaking API changes

  • The --type-check CLI option now only enables checking for compiler errors before linting. It is no longer required to enable rules that use the type checker -- only need to supply --project now.

🎉 New rules, options, and fixers

🛠 Bugfixes & enhancements

Thanks to our contributors!

  • Klaus Meinhardt
  • Manuel Lopez
  • Andy Hanson
  • Piotr Tomiak

v5.3.2

23 May 02:57
Compare
Choose a tag to compare
  • [bugfix] Fixes not a directory error

v5.3.0

22 May 22:20
Compare
Choose a tag to compare

⚠️ This release may require a change to tslint.json

🎉 New rules, options, and fixers

🛠 Bugfixes & enhancements

Thanks to our contributors!

  • Andy Hanson
  • Klaus Meinhardt
  • Martin Probst
  • Filipe Silva
  • walkerburgin
  • René Scheibe

v5.2.0

03 May 19:57
Compare
Choose a tag to compare

Thanks to our contributors!

  • Andy Hanson
  • Alex Eagle
  • Donald Pipowitch
  • Klaus Meinhardt
  • Gord P
  • Andy
  • Quentin
  • Mitchell Wills
  • Vito
  • CSchulz
  • Josh Goldberg
  • Brian Olore
  • Manuel Lopez
  • James Clark

v5.1.0

10 Apr 19:41
Compare
Choose a tag to compare
  • [new-rule] no-invalid-template-strings (#2332)
  • [new-rule] no-sparse-arrays (#2407)
  • [new-rule-option] no-void-expression: adds ignore-arrow-function-shorthand (#2445)
  • [api] tslint:all configuration (#2417)
  • [bugfix] In tslint:recommended move no-reference-import from jsRules to rules (#2441)
  • [bugfix] no-unnecessary-callback-wrapper: only check if callback is identifier, allow all other expressions (#2510)
  • [bugfix] member-access: Skip index signature, it can not have an access modifier (#2437)
  • [bugfix] restrict-plus-operands fixes regression where every assignment and comparison was checked (#2454)
  • [bugfix] no-unnecessary-callback-wrapper: allow async wrapper function (#2510)
  • [bugfix] prefer-for-of: No error if delete is used (#2458)
  • [bugfix] radix: don't warn for missing radix on method calls (#2352)
  • [bugfix] no-use-before-declare: Handle symbol with empty declarations list. (#2436)
  • [bugfix] strict-type-predicates: Check for construct signatures in isFunction. (#2479)
  • [enhancement] strict-boolean-expressions: When --strictNullChecks is turned off, allow-null-union and allow-undefined-union turn off "always truthy" errors. (#2373)
  • [enhancement] radix: added check for global.parseInt and window.parseInt (#2352)
  • [enhancement] arrow-return-shorthand: Improve failure message when return expression is an object literal (#2466)

v5.0.0

29 Mar 19:05
Compare
Choose a tag to compare

NPM distribution note: tslint@next is deprecated now that the standard tslint package allows a peer dependency of typescript@next. Please switch to tslint@latest.

🔥 Breaking changes

  • Minimum version of TypeScript is now 2.1.0 (#2425)
  • The severity level of each rule is now configurable and defaults to severity "error". This affects the output of formatters:
    • [formatter] msbuild was outputting all failures as "warning".
    • [formatter] pmd was outputting all failures as priority 1. Now, it uses priority 3 for "error" (default) and priority 4 for "warning"
  • [formatter] json changed the fix property to now contain either one replacement or an array of replacements (#2403)
  • tslint:recommended configuration updated with tslint:latest rules & options (#2424)
  • Removed no-unused-new rule, with logic moved into no-unused-expression (#2269)
  • no-trailing-whitespace now checks template strings by default. Use the new options ignore-template-strings to restore the old behavior. (#2359)
  • Some rules that previously worked without the type checker now require it. This includes:
    • no-unused-variable
    • no-use-before-declare

API breaks for editor integration

  • LintResult.failureCount is now separated into LintResult.errorCount and LintResult.warningCount
  • class Fix is now type Fix = Replacement | Replacement[]

API breaks for custom rules

  • Removed method skip from RuleWalker (#2313)

  • Removed all use of the TypeScript Language Service, use only Program APIs instead (#2235)

    • This breaks custom rule compilation. If your rule was not using the ts.LanguageService APIs, the migration is quite simple:
    - public applyWithProgram(srcFile: ts.SourceFile, langSvc: ts.LanguageService): Lint.RuleFailure[] {
    -     return this.applyWithWalker(new Walker(srcFile, this.getOptions(), langSvc.getProgram()));
    + public applyWithProgram(srcFile: ts.SourceFile, program: ts.Program): Lint.RuleFailure[] {
    +     return this.applyWithWalker(new Walker(srcFile, this.getOptions(), program));
  • Removed createFix. Replacements should be passed directly into addFailure. (#2403)

  • Removed deprecated scanAllTokens and skippableTokenAwareRuleWalker (#2370)

🎉 Notable features & enhancements

  • [feature] The severity level of each rule is now individually configurable. Default severity can also be configured for a config file. (#629, #345)

    • Valid values for severity: default | error | warn | warning | none | off
    • Valid values for defaultSeverity: error | warn | warning | none | off
    • Old style:
    {
        "extends": "tslint:latest",
        "rules": {
            "callable-types": true,
            "max-line-length": [true, 140]
        }
    }
    • New style (in this example, callable-types outputs errors and max-line-length outputs warnings):
    {
        "extends": "tslint:latest",
        "defaultSeverity": "error",
        "rules": {
            "callable-types": true,
            "max-line-length": {
                "options": 140,
                "severity": "warning"
            }
        }
    }
  • [new-rule] prefer-template (#2243)

  • [new-rule] return-undefined (#2251)

  • [new-rule] no-reference-import (#2273)

  • [new-rule] no-unnecessary-callback-wrapper (#2249)

  • [new-fixer] linebreak-style (#2394)

  • [new-fixer] eofline (#2393)

Full list of changes

  • [api] Added class OptionallyTypedRule, which allows rule authors to write a rule that applies when typing is either enabled or disabled (#2300)
  • [bugfix] prefer-function-over-method now ignores abstract methods (#2307)
  • [bugfix] arrow-parens with option ban-single-arg-parens now correctly handles functions with return type annotation (#2265)
  • [bugfix] prefer-function-over-method exclude overload signatures (#2315)
  • [bugfix] use-isnan now applies only to comparison operators (#2317)
  • [bugfix] file-header-rule now handles single-line comments correctly (#2320)
  • [bugfix] newline-before-return: fix handling of blank lines between comments (#2321)
  • [bugfix] trailing-comma No longer enforce trailing commas in type parameters and tuple types (#2236)
  • [bugfix] align don't fix if it would remove code (#2379)
  • [bugfix] unified-signatures now recognizes rest parameters (#2342)
  • [bugfix] no-inferrable-types don't warn for inferrable type on readonly property (#2312)
  • [bugfix] trailing-comma no longer crashes on new without parentheses (e.g. new Foo) (#2389)
  • [bugfix] semicolon Ignore comments when checking for unnecessary semicolon (#2240)
  • [bugfix] semicolon Don't report unnecessary semicolon when followed by regex literal (#2240)
  • [bugfix] CLI: exit with 0 on type check errors when --force is specified (#2322)
  • [bugfix] CLI: --test now correctly strips single quotes from patterns on windows (#2322)
  • [bugfix] prefer-const only fix initialized variables (#2219)
  • [bugfix] prefer-const correctly handle variables shadowed by parameters and catched exceptions (#2219)
  • [bugfix] prefer-const don't warn if one variable in a for loop initializer can not be const (#2219)
  • [bugfix] prefer-const handle more cases in destructuring (#2219)
  • [bugfix] no-unused-expression allow comma separated assignments (#2269)
  • [chore] removed update-notifier dependency (#2262)
  • [development] allow rule tests to specify version requirement for typescript (#2323)
  • [enhancement] ignore-properties option of no-inferrable-types now also ignores parameter properties (#2312)
  • [enhancement] unified-signatures now displays line number of the overload to unify if there are more than 2 overloads (#2270)
  • [enhancement] trailing-comma New checks for CallSignature and NamedExports (#2236)
  • [enhancement] semicolon New check for export statements, function overloads and shorthand module declaration (#2240)
  • [enhancement] semicolon Report unnecessary semicolons in classes and in statement position (for option "always" too) (#2240)
  • [enhancement] semicolon check for semicolon after method overload (#2240)
  • [enhancement] array-type now consider object, undefined and never as simple types, allowing object, undefined[] and never[] (#1843)(#2353)
  • [enhancement] align check statement alignment for all blocks (#2379)
  • [enhancement] aligncheck parameter alignment for all signatures (#2379)
  • [enhancement] --test can handle multiple paths at once (#2322)
  • [enhancement] only-arrow-functions allow functions that use this in the body (#2229)
  • [enhancement] CLI: print error when --type-check is used without --project (#2322)
  • [enhancement] CLI: don't print stack trace on type check error (#2322)
  • [enhancement] CLI: added -p as shorthand for --project to be consistent with tsc (#2322)
  • [enhancement] prefer-const show warnings for var (#2219)
  • [enhancement] quotemark fixer unescapes original quotemark (e.g. '\'' -> "'") (#2359)
  • [enhancement] no-unused-expression allow indirect eval (0, eval)(""); (#2269)
  • [enhancement] no-unused-expression checking for unused new can now use option allow-fast-null-checks (#2269)
  • [enhancement] no-unused-expression find unused comma separated expressions in all locations of the code (#2269)
  • [enhancement] no-unused-expression find unused expressions inside void expression (#2269)
  • [new-config-option] Adds defaultSeverity with options error, warning, and off. (#2416)
  • [new-formatter] TAP formatter (#2325)
  • [new-rule-option] no-unused-expression adds option allow-tagged-template to allow tagged templates for side effects (#2269)
  • [new-rule-option] no-unused-expression adds option allow-new to allow new without using the new object (#2269)
  • [new-rule-option] member-access adds no-public option (#2247)
  • [new-rule-option] curly added option ignore-same-line (#2334)
  • [new-rule-option] {destructuring: "all"} to only warn if all variables in a destructuring can be const (#2219)
  • [new-rule-option] added ignore-template-strings to no-trailing-whitespace (#2359)
  • [rule-update] array-type now consider undefined and never as simple types, allowing undefined[] and never[] (#1843)

Thanks to our contributors!

  • Brian Olore
  • Andy Hanson
  • @andy-ms
  • Chris Barr
  • Klaus Meinhardt
  • @bumbleblym
  • Josh Goldberg
  • James Clark
  • @vilic
  • Aleksandr Filatov
  • Matt Banz
  • Karol Janyst
  • Mike Deverell
  • Alexander James Phillips
  • Irfan Hudda

v5.0.0-dev.0

04 Mar 01:33
Compare
Choose a tag to compare
v5.0.0-dev.0 Pre-release
Pre-release

Include the current (incomplete) set of changes for v5.0.0:

  • BREAKING CHANGES

    • The severity level of rules is now configurable and defaults to severity "error"
    • The following formatters have changed their outputs:
      • msbuildFormatter - default was "warning"; it is now "error"
      • pmdFormatter - default was priority 1; it is now "error" (priority 3). If set to "warning", it will output priority 4
  • [enhancement] Enable WARN with new config file format (#629, #345)

    • Valid values for severity: error | warn | warning | none | off
    • Old style:
    {
        "extends": "tslint:latest",
        "rules": {
            "callable-types": true
        }
    }
    • New style, with interface-name generating warnings, and passing options to max-line-length:
    {
        "extends": "tslint:latest",
        "rules": {
            "callable-types": true,
            "interface-name": {
                "severity": "warn"
            },
            "max-line-length": {
                "options": 140,
                "severity": "warning"
            }
        }
    }

v4.5.1-dev.0

04 Mar 00:59
Compare
Choose a tag to compare
v4.5.1-dev.0 Pre-release
Pre-release

Includes changes from v4.5.1 on next dist-tag.

v4.5.1

28 Feb 18:54
Compare
Choose a tag to compare
  • [enhancement] Updated recommended rules to include ban-types and no-duplicate-super (#2271)
  • [bugfix] object-literal-key-quotes handle negative number property name (#2273)

v4.5.0

27 Feb 19:07
Compare
Choose a tag to compare
  • [new-rule] no-import-side-effect (#2155)
  • [new-rule] match-default-export-name (#2117)
  • [new-rule] no-non-null-assertion (#2221)
  • [new-rule] ban-types (#2175)
  • [new-rule] no-duplicate-super (#2038)
  • [new-rule] newline-before-return (#2173)
  • [new-rule-option] completed-docs adds options for location, type, and privacy. Also adds interfaces, enums, types (#2095)
  • [new-rule-option] no-inferrable-types adds option ignore-properties (#2178)
  • [new-rule-option] typedef adds options object-destructuring and array-destructuring options (#2146)
  • [new-rule-option] member-ordering adds option alphabetize (#2101)
  • [new-rule-option] no-trailing-whitespace adds option ignore-jsdoc (#2177)
  • [new-rule-option] no-trailing-whitespace adds option ignore-comments option (#2153)
  • [new-fixer] no-inferrable-types automatically remove inferrable type annotations (#2178)
  • [new-fixer] no-any (#2165)
  • [new-fixer] noConsecutiveBlankLines (#2201)
  • [new-fixer] object-literal-shorthand (#2165)
  • [bugfix] no-switch-case-fallthrough handle break, throw, continue and return nested in block, if-else and switch (#2218)
  • [bugfix] no-switch-case-fallthrough allow empty case clauses before default clause (#2218)
  • [bugfix] no-mergeable-namespace ignore property types that can't be merged (#2105)
  • [bugfix] object-literal-key-quotes no need to quote a float if its .toString() is the same. (#2144)
  • [bugfix] no-consecutive-blank-lines Correctly apply fixes at EOF (#2239)
  • [bugfix]: Fixes installation issue with node 7.5 (#2212)
  • [bugfix]: quotemark now handles escaped chars (#2224)
  • [enhancement] Don't exit when a rule requires type checking but type checking is not enabled (#2188)
  • [enhancement] no-switch-case-fallthrough allow single line comment // falls through (#2218)
  • [enhancement] no-unbound-method allows property access and binary expressions (#2143)
  • [api] Introduce AbstractWalker for performance (#2093)