- Enabled additional rules in
tslint:latest
configuration (#1506)
- Stable release containing changes from the last dev release (v3.15.0-dev.0)
- [enhancement] Rules can automatically fix errors (#1423)
- [enhancement] Better error messages for invalid source files (#1480)
- [new-rule]
adjacent-overload-signatures
rule (#1426) - [new-rule]
file-header
rule (#1441) - [new-rule]
object-literal-shorthand
rule (#1488) - [new-rule-option]
allow-declarations
option foronly-arrow-functions
rule (#1452) - [new-rule-option]
import-sources-order
option forordered-imports
rule (#1466) - [bugfix]
arrow-parens
rule handles async and generics (#1446, #1479) - [bugfix]
comment-format
rule ignores tslint control comments (#1473) - [bugfix] Fix
no-shadowed-variable
rule false positives (#1482)
Thanks to our contributors!
- @apacala
- @danvk
- @DovydasNavickas
- @glen-84
- @IllusionMH
- @JoshuaKGoldberg
- @markwongsk
- @rakatyal
- @rhysd
- @ScottSWu
- @YuichiNukiyama
- Stable release containing changes from the last dev releases (v3.14.0-dev.0, v3.14.0-dev.1)
- [new-rule]
arrow-parens
rule (#777) - [new-rule]
max-file-line-count
rule (#1360) - [new-rule]
no-unsafe-finally
rule (#1349) - [new-rule]
no-for-in-array
rule (#1380) - [new-rule]
object-literal-key-quotes
rule (#1364) - [enhancement] Better
ban
rule failure messages (#1385) - [enhancement] New stylish formatter (#1406)
Thanks to our contributors!
- @chrismbarr
- @danvk
- @gjuchault
- @lowkay
- @ScottSWu
- @YuichiNukiyama
- [enhancement] Add optional type information to rules (#1323)
Thanks to our contributors!
- @ScottSWu
- Stable release containing changes from the last dev release (v3.13.0-dev.0)
- [new-rule]
ordered-imports
rule (#1325) - [enhancement] MPEG transport stream files are ignored by the CLI (#1357)
Thanks to our contributors!
- @chrismbarr
- @corydeppen
- @danvk
- @janaagaard75
- @mprobst
- Stable release containing changes from the last dev release (v3.12.0-dev.1)
- [bugfix] Fix null reference bug in typedef rule (#1345)
- Stable release containing changes from the last dev release (v3.12.0-dev.0)
- [new-rule]
only-arrow-functions
rule (#1318) - [new-rule]
no-unused-new
rule (#1316) - [new-rule-option]
arrow-call-signature
option fortypedef
rule (#1284) - [enhancement] Metadata for every rule (#1311)
- [enhancement]
typedef
rule is more flexible about the location of typedefs for arrow functions (#1176) - [enhancement] Failure messages are clearer and more consistent for many rules (#1303, #1307, #1309)
- [bugfix]
no-consecutive-blank-lines
now handles lines with only whitespace correctly (#1249) - [bugfix] Correctly load
.json
config files that have a BOM (#1338)
Thanks to our contributors!
- @allannienhuis
- @arnaudvalle
- @bencoveney
- @chrismbarr
- @corydeppen
- @HamletDRC
- @JoshuaKGoldberg
- @timbrown81
- @tomduncalf
- @YuichiNukiyama
- Stable release containing changes from the last dev release (v3.11.0-dev.0)
- [new-rule]
linebreak-style
rule (#123) - [new-rule]
no-mergeable-namespace
rule (#843) - [enhancement] Add built-in configurations (#1261)
- [enhancement] New vso formatter (#1281)
- [new-rule-option]
ignore-interfaces
option forsemicolon
rule (#1233) - [bugfix]
no-default-export
rule handles more default export cases (#1241)
Thanks to our contributors!
- @cgwrench
- @HamletDRC
- @lijunle
- @paldepind
- @patsissons
- @schmuli
- @YuichiNukiyama
- Stable release containing changes from the last dev release (v3.10.0-dev.2)
- [bugfix]
member-ordering
rule doesn't crash on methods in class expressions (#1252) - [bugfix]
ban
rule handles chained methods appropriately (#1234)
Thanks to our contributors!
- @marines
- Stable release containing changes from the last dev release (v3.10.0-dev.1)
- [bugfix]
member-ordering
rule doesn't crash on methods in object literals (#1243)
- Stable release containing changes from the last dev release (v3.10.0-dev.0)
- [new-rule]
new-parens
rule (#1177) - [new-rule]
no-default-export
rule (#1182) - [new-rule-option]
order: ...
option formember-ordering
rule (#1208) - [new-rule-option] "ignore-for-loop" option for
one-variable-per-declaration
rule (#1204) - [enhancement] "no-this-in-function-in-method" option renamed to "check-function-in-method" (#1203)
- [bugfix]
semicolon
rule checks export statements (#1155)
Thanks to our contributors!
- @chrismbarr
- @HamletDRC
- @larshp
- @patsissons
- @YuichiNukiyama
- Stable release containing changes from the last dev release (v3.9.0-dev.0)
- [new-rule]
no-namespace
rule (#1133) - [new-rule]
one-variable-per-declaration
rule (#525) - [new-rule-option] "ignore-params" option for
no-inferrable-types
rule (#1190) - [new-rule-option] "no-this-in-function-in-method" option for
no-invalid-this
rule (#1179) - [enhancement] Single line enable/disable comments (#144)
- [enhancement] Resolve
extends
packages relative to location of configuration file (#1171) - [enhancement]
Linter
class will throw an error if configuration is of an invalid type (#1167) - [bugfix]
use-isnan
allows assaignments toNaN
(#1054) - [bugfix]
no-unreachable
handles allows hoisted type aliases (#564) - [bugfix]
member-ordering
rule now checks constructors (#1158) - [bugfix]
--test
CLI command works correctly with specifiying custom rules (#1195)
Thanks to our contributors!
- @abierbaum
- @HamletDRC
- @inthemill
- @janslow
- @JoshuaKGoldberg
- @mprobst
- @patsissions
- @YuichiNukiyama
- Stable release containing changes from the last dev release (v3.8.0-dev.1)
- [bugfix] Allow JS directives at the start of constructors, getters, and setters (#1159)
- [bugfix] Remove accidentally included performance profiles from published NPM artifact (#1160)
- Stable release containing changes from the last dev release (v3.8.0-dev.0)
- [new-rule]
no-invalid-this
rule (#1105) - [new-rule]
use-isnan
rule (#1054) - [new-rule]
no-reference
rule (#1139) - [new-rule-option] "allow-pascal-case" option for
variable-name
rule (#1079) - [enhancement] Comments now allowed in
tslint.json
files (#1129) - [enhancement] Smarter
trailing-comma
behavior (#1122) - [enhancement]
semicolon
rule more lenient with arrow-function class members (#1076) - [enhancement] Allow enabling/disabling rules with
//
comments (#1134) - [enhancement] New checkstyle formatter (#250)
- [enhancement] Clearer message for
no-var-keyword
rule (#1124) - [bugfix] Loaded configurations are not cached (#1128)
- [bugfix] Allow JS directives at the start of class methods (#1144)
Thanks to our contributors!
- @AndyMoreland
- @chrismbarr
- @HamletDRC
- @JoshuaKGoldberg
- @sshev
- @unional
- Stable release containing changes from the last dev release (v3.7.0-dev.5)
- [bugfix] Allow JS directives in namespaces (#1115)
- Stable release containing changes from the last dev release (v3.7.0-dev.4)
- [bugfix] Downgrade
findup-sync
dependency (#1108)
- Stable release containing changes from the last dev release (v3.7.0-dev.3)
- [bugfix]
findConfigurationPath
always returns an absolute path (#1093) - [bugfix] Update
findup-sync
dependency (#1080) - [bugfix]
declare global
no longer triggersno-internal-module
rule (#1069) - [bugfix] Valid JS directives no longer trigger
no-unused-expression
rule (#1050)
- Stable release containing changes from the last dev release
- [bugfix] Improve handling of paths provided via the -c CLI option (#1083)
- Stable release containing changes from the last dev release
- [enhancement]
extends
field fortslint.json
files (#997) - [enhancement]
--force
CLI option (#1059) - [enhancement] Improve how
Linter
class handles configurations with arulesDirectory
field (#1035) - [new-rule]
no-angle-bracket-type-assertion
rule (#639) - [new-rule-option] "allow-undefined-check" option for
triple-equals
rule (#602) - [new-rule-option] "always-prefix" and "never-prefix" option for
interface-name
rule (#512)
Thanks to our contributors!
- @Arnavion
- @chrismbarr
- @ChrisPearce
- @JoshuaKGoldberg
- @patsissonso
- @sasidhar
- @unional
- @vvakame
- Stable release containing changes from the last dev release
- [enhancement] Add
--exclude
CLI option (#915) - [bugfix] Fix
no-shadowed-variable
rule handling of standalone blocks (#1021) - [deprecation] Configuration through
package.json
files (#1020) - [API] Export additional configuration methods from top-level "tslint" module (#1009)
Thanks to our contributors!
- @blakeembrey
- @hamhut1066
- @meowtec
- Stable release containing changes from the last dev release
- [new-rule-option] "ignore-pattern" option for
no-unused-variable
rule (#314) - [bugfix] Fix occassional crash in
no-string-literal
rule (#906) - [enhancement] Tweak behavior of
member-ordering
rule with regards to arrow function types in interfaces (#226)
Thanks to our contributors!
- @arusakov
- @Pajn
- Stable release containing changes from the last two dev releases
- [new-rule-option] "arrow-parameter" option for
typedef
rule (#333) - [new-rule-option] "never" option for
semicolon
rule (#363) - [new-rule-option] "onespace" setting for
typedef-whitespace
rule (#888) - [new-rule-option]
typedef-whitespace
rule can now check spacing on right side of typdef colon (#888) - [enhancement]
member-ordering
rule treats arrow functions as methods (#226) - [bugfix] Handle spaces before typedefs correctly in
typedef-whitespace
rule (#955) - [bugfix]
label-position
rule now allows labels onfor-of
loops (#959)
Thanks to our contributors!
- @b0r3as
- @ChaseMoskal
- @Pajn
- @pe8ter
- @tomduncalf
- [enhancement] Revamped testing system (#620)
- Writing tests for rules is now much simpler with a linter DSL.
See exisitng tests in
test/rules/**/*.ts.lint
for examples.
- Writing tests for rules is now much simpler with a linter DSL.
See exisitng tests in
- [enhancement] New msbuild formatter (#947)
- [bugfix] Fix handling of multiline literals in
trailing-comma
rule (#856) - [bugfix]
one-line
rule correctly checks space betweencatch
and opening brace (#925) - [bugfix]
one-line
rule correctly checks multiline variable declarations (#935) - [new-rule-option] New option
check-finally
forone-line
rule (#925) - BREAKING CHANGES
- [bugfix] Report error when a rule in the config file is not found (#598)
Thanks to our contributors!
- @mmv
- @pe8ter
- [bugfix] Tweak TSLint build so TSLint works with typescript@next (#926)
- [bugfix] Correctly handle more than one custom rules directory (#928)
- Stable release containing changes from the last dev release
- [enhancement] Throw an error if a path to a directory of custom rules is invalid (#910)
- [new-rule-option] "jsx-single" and "jsx-double" options for
quotemark
rule (#673) - [bugfix] Handle paths to directories of custom rules more accurately
- [bugfix]
no-unused-expression
rule handlesawait
statements correctly (#887)
- Stable release containing changes from the last dev release
- [enhancement] automatically generate a
tslint.json
file with new--init
CLI command (#717) - [bugfix]
no-var-keyword
rule detects the use ofvar
in all types offor
loops (#855)
- Stable release containing changes from last two dev releases
- [bugfix] formatters are now exported correctly to work with TS 1.8 (#863)
- [bugfix] fixed bug in how custom rules directories are registered (#844)
- [enhancement] better support for globs in CLI (#827)
- [new-rule]
no-null-keyword
rule (#722)
- Bump TypeScript peer dependency to
>= 1.7.3
due toconst enum
incompatibility (#832)
- [bugfix] build with TS v1.7.3 to fix null pointer exception (#832)
- [bugfix] fixed false positive in
no-require-imports
rule (#816)
- [bugfix] fixed
no-shadowed-variable
false positives when handling destructuring in function params (#727) - [enhancement]
rulesDirectory
intslint.json
now supports multiple file paths (#795)
- [bugfix]
member-access
rule now handles object literals and get/set accessors properly (#801)- New rule options:
check-accessor
andcheck-constructor
- New rule options:
- All the changes from the following releases, including some breaking changes:
3.0.0-dev.3
3.0.0-dev.2
3.0.0-dev.1
2.6.0-dev.2
2.6.0-dev.1
- TypeScript is now a peerDependency (#791)
- [bugfix]
no-unused-variable
rule withreact
option works with self-closing JSX tags (#776) - [bugfix]
use-strict
bugfix (#544)
- [new-rule-option] "react" option for
no-unused-variable
rule (#698, #725) - [bugfix] Fix how
Linter
is exported from "tslint" module (#760) - [bugfix]
no-use-before-declare
rule doesn't crash on uncompilable code (#763)
- BREAKING CHANGES
- Rearchitect TSLint to use external modules instead of merged namespaces (#726)
- Dependencies need to be handled differently now by custom rules and formatters
- See the PR for full details about this change
no-trailing-comma
rule removed, it is replaced by thetrailing-comma
rule (#687)- Rename
sort-object-literal-keys
rule toobject-literal-sort-keys
(#304, #537) Lint.abstract()
has been removed (#700)
- Rearchitect TSLint to use external modules instead of merged namespaces (#726)
- [new-rule]
trailing-comma
rule (#557, #687) - [new-rule-option] "ban-keywords" option for
variable-name
rule (#735, #748) - [bugfix]
typedef
rule now handlesfor-of
loops correctly (#743) - [bugfix] Handle tslint.json utf-8 files which have a BOM correctly (#90)
- Upgrade TypeScript compiler to
v1.7.0-dev.20151003
- [bugfix]
no-unused-expression
rule now handles yield expressions properly (#706)
- Upgrade TypeScript compiler to
v1.7.0-dev.20150924
- [new-rule] no-inferrable-types rule (#676)
- [new-rule-option] "avoid-escape" option for quotemark rule (#543)
- [bugfix] type declaration for tslint external module #686
- [enhancement]
AbstractRule
andAbstractFormatter
are now abstract classes (#631)- Note:
Lint.abstract()
is now deprecated
- Note:
- Use TypeScript compiler
v1.6.2
- [bugfixes] #637, #642, #650, #652
- [bugfixes] fix various false positives in
no-unused-variable
rule (#570, #613, #663) - Update project setup for latest VSCode (#662)
- Use TypeScript compiler
v1.6.0-beta
- [bugfix] Fix
no-internal-module
false positives on nested namespaces (#600) - [docs] Add documentation for
sort-object-literal-keys
rule
- Upgrade TypeScript compiler to
v1.7.0-dev.20150828
- [bugfix] Handle .tsx files appropriately (#597, #558)
- Upgrade TypeScript compiler to
v1.6.0-dev.20150825
- Upgrade TypeScript compiler to
v1.6.0-dev.20150821
- Upgrade TypeScript compiler to
v1.6.0-dev.20150811
- [bug] fix
whitespace
false positive in JSX elements (#559)
- Upgrade TypeScript compiler to
v1.6.0-dev.20150805
- [enhancement] Support
.tsx
syntax (#490)
- [bugfix] fix false positives on
no-shadowed-variable
rule (#500) - [enhancement] add
allow-trailing-underscore
option tovariable-name
rule
- [bugfix] remove "typescript" block from package.json (#606)
- [new-rule]
no-conditional-assignment
(#507) - [new-rule]
member-access
(#552) - [new-rule]
no-internal-module
(#513) - [bugfix] small fixes to
sample.tslint.json
(#545) - [bugfix] fix README docs for quotemark and indent (#523)
- [enhancement] update
findup-sync
andunderscore.string
dependencies - [enhancement] add
"typescript"
field topackage.json
(#560) - [enhancement] small improvements to CLI help text
- [enhancement] expose raw failures array in the JS API (#477)
- [bug] remove npm-shrinkwrap.json from the published package
- Upgraded Typescript compiler to 1.5.3
- [bugs] #332, #493, #509, #483
- [bug] fix error message in
no-var-keyword
rule - [enhancement] CI tests are now run on node v0.12 in addition to v0.10
- BREAKING
-f
option removed from CLI
- [bugs] #137 #434 #451 #456
- [new-rule]
no-require-imports
disallowsrequire()
style imports - [new-rule]
no-shadowed-variable
moves over shadowed variable checking fromno-duplicate-variable
into its own rule - BREAKING
no-duplicate-variable
now only checks for duplicates within the same block scope; enableno-shadowed-variable
to get duplicate-variable checking across block scopes
- [enhancement]
no-duplicate-variable
,no-shadowed-variable
, andno-use-before-declare
now support ES6 destructuring - [enhancement] tslint CLI now uses a default configuration if no config file is found
- [bugs] #401 #367 #324 #352
- [new-rule]
no-var-keyword
disallowsvar
in favor oflet
andconst
- [new-rule]
sort-object-literal-keys
forces object-literal keys to be sorted alphabetically - Add support for ES6 destructuring and module syntax (affects
variable-name
,no-use-before-declare
,whitespace
andno-unused-variable
) - Add support for ES6 for-of and spread operator syntax
- Use tsconfig.json & JSCS in the build system
- Upgraded Typescript compiler to 1.5.0-beta
- BREAKING CHANGES
- due to changes to the typescript compiler API, old custom rules may no longer work and may need to be rewritten
- the JSON formatter's line and character positions are now back to being 0-indexed instead of 1-indexed
- [bugs] #328 #334 #319 #351 #365 #254
- [bug] fixes for tslint behavior around template strings (fixes #357, #349, #332, and more)
- [new-rule]
align
rule now enforces vertical alignment on parameters, arguments, and statements - [new-rule]
switch-default
enforces adefault
case inswitch
statements - [feature]
no-duplicate-variable
rule now additionally checks if function parameters have been shadowed - Additional fixes to existing rules to work as before with the typescript 1.5 compiler
- [bugs] #292 #293 #295 #301 #302
- Some internal refactoring
- Added Windows CI testing (appveyor)
- Fix crash on Windows
- Upgraded Typescript compiler to 1.4
- BREAKING CHANGES
- typedef rule options were modified:
- index-signature removed as no longer necessary
- property-signature renamed to property-declaration
- variable-declarator renamed to variable-declaration
- member-variable-declarator renamed to member-variable-declaration
- typedef-whitespace rule options were modified:
- catch-clause was removed as invalid
- further options were added, see readme for more details
- due to changes to the typescript compiler API, old custom rules may no longer work and may need to be rewritten
- the JSON formatter's line and character positions are now 1-indexed instead of 0-indexed
- typedef rule options were modified:
- [bug] #245
- [bug] #238
- upgrade TypeScript compiler to 1.3
- BREAKING CHANGES
- all error messages now start with a lower-case character and do not end with a period
- all rule options are consistent in nomenclature. The
typedef
andtypedef-whitespace
rules now take in hyphenated options unused-variables
rule cannot find unused private variables defined in the constructor due to a bug in 1.3 compilerindent
rule has changed to only check for tabs or spaces and not enforce indentation levels
- multiple files with -f on cli
- config file search starts with input file
- [bugs] #136, #163
- internal refactors
- [bugs] #138, #145, #146, #148
- [new-rule]
no-any
disallows all uses ofany
- [bug]
/* tslint:disable */
now disables semicolon rule as well - [bug] delete operator no longer results in a false positive for
no-unused-expression
- [new-rule]
no-var-requires
disallows require statements not part of an import statement - [new-rule]
typedef
rule also checks for member variables - [bug]
no-unused-variable
no longer triggers false positives for class members labeled onlystatic
- [bug]
no-unused-expression
no longer triggers false positives for"use strict";
expressions - [bug]
use-strict
works correctly on function declarations - [bug] config file is now discoverable from other drives on Windows
- [new-rule] added
no-unused-expression
rule which disallows unused expression statements - [feature] the
check-operator
option for thewhitespace
rule now checks whitespace around the => token - [bug]
no-use-before-declare-rule
no longer triggers false positives for member variables of classes used before the class is declared - [bug] semicolon at end of file no longer triggers false positives for
whitespace
rule - [bug] hoisted functions no longer cause false positives for the
no-unreachable
rule - [bug] the rule loader no longer transforms/ignores the leading and trailing underscores and dashes of rule names in the config file
- [bug]
export import
statements no longer false positives forno-unused-variable-rule
- [docs] added documentation for creating custom rules and formatters
- [docs] added sample
tslint.json
file, underdocs/sample.tslint.json
- [build] migrated build to use
grunt-ts
instead ofgrunt-typescript
- [feature]
package.json
now contains atslintConfig
paramater to allow users to specify the location of the configuration file there - [feature] tslint now searches for the configuration file in the user's home directory if not found in the current path
- [bug] unbraced conditionals no longer cause false positives for the
no-unreachable
rule
- [feature]
no-unused-variable
no longer checks parameters by defualt. Parameters are now only checked if thecheck-parameters
option is set. - [bug]
no-unused-variable
parameter check no longer fails on variable argument parameters (like ...args) and on cases where the parameters are broken up by newlines.
- [bug]
no-unused-variable
validates function parameters and constructor methods - [bug]
no-empty
andno-trailing-comma
rules handle empty objects
- [new-rule]
no-unused-variable
- [new-rule]
no-trailing-comma
- [new-rule]
no-use-before-declare
- [feature] support
--version
in CLI - [feature] expose rule names to custom formatters
- [feature] add
verbose
formatter - [bug]
no-empty
allows constructors with member declaration parameters - [bug] CLI supports
--help
- [bug]
max-line-length
allows CRLF endings