.gitignore added
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / tslint / CHANGELOG.md
1 # Change Log
2
3 ## v5.20.1
4
5 No changes from v5.20.0, just re-released to correctly mark with the `latest` dist-tag on NPM.
6
7 ## v5.20.0
8
9 - [bugfix] fix [`strict-boolean-expressions`](https://palantir.github.io/tslint/rules/strict-boolean-expressions/) false positive with `"ignore-rhs"` option (#4833)
10 - [bugfix] fix [`no-unnecessary-type-assertion`](https://palantir.github.io/tslint/rules/no-unnecessary-type-assertion/) no error when `"strict": true` in compiler flags (#4841)
11 - [bugfix] "ignore" option for [`file-name-casing`](https://palantir.github.io/tslint/rules/file-name-casing/) rule works correctly (#4848)
12 - [bugfix] fix [`array-type`](https://palantir.github.io/tslint/rules/array-type/) false positive for simple parenthesized types with "array-simple" option (#4844)
13 - [new-rule-option] [`object-literal-shorthand`](https://palantir.github.io/tslint/rules/object-literal-shorthand/) supports `{"property"?: "never", "method"?: "never"}` as config options (#4842)
14 - [new-rule-option]: `allow-generics` option for [`invalid-void`](https://palantir.github.io/tslint/rules/invalid-void) rule (#4839)
15 - [new-rule-option] `check-super-calls` option for [`unnecessary-constructor`](https://palantir.github.io/tslint/rules/unnecessary-constructor/) rule (#4813)
16 - [chore] Upgrade `diff` dependency to v4.0.1 (#4845, #4852)
17
18 Thanks to our contributors!
19
20 - Bas Bosman
21 - Tanmoy Bhowmik
22 - David Zulaica
23 - Maxime Kjaer
24 - @guidsdo
25 - Pavel Birukov
26 - Josh Goldberg
27 - Akshaya Srivatsa
28
29
30 ## v5.19.0
31
32 - [bugfix] relax [`promise-function-async`](https://palantir.github.io/tslint/rules/promise-function-async/) for short parenthesized arrow functions (#4765)
33 - [bugfix] fix [`no-async-without-await`](https://palantir.github.io/tslint/rules/no-async-without-await/) false positive for abstract methods (#4782)
34 - [bugfix] fix [`strict-comparison`](https://palantir.github.io/tslint/rules/strict-comparison/) false positive for `null` and `undefined` literals (#4786)
35 - [bugfix] improve [`no-angle-bracket-type-assertion`](https://palantir.github.io/tslint/rules/no-angle-bracket-type-assertion/) autofix semantics with more parentheses (#4823)
36 - [enhancement] add BigInt support to [`restrict-plus-operands`](https://palantir.github.io/tslint/rules/restrict-plus-operands/) rule (#4814)
37 - [enhancement] [`await-promise`](https://palantir.github.io/tslint/rules/await-promise/) now supports new TypeScript 3.6 AST API symbols for async iterators (#4800)
38 - [new-rule-option] `check-strings` and `check-regex` options for [`max-line-length`](https://palantir.github.io/tslint/rules/max-line-length/) rule (#4798)
39 - [new-rule-option] `variable-declaration-ignore-function` option for [`typedef`](https://palantir.github.io/tslint/rules/typedef/) rule (#4769)
40 - [new-rule-option] `ignore-blank-lines` option for [`object-literal-sort-keys`](https://palantir.github.io/tslint/rules/object-literal-sort-keys/) rule (#4808)
41 - [new-rule] [`no-for-in`](https://palantir.github.io/tslint/rules/no-for-in/) (#4747)
42 - [new-rule] [`invalid-void`](https://palantir.github.io/tslint/rules/invalid-void/) (#4736)
43 - [new-rule] [`strict-string-expressions`](https://palantir.github.io/tslint/rules/strict-string-expressions/) reports errors on type coercions found in string expressions (#4807)
44 - [new-rule] [`no-promise-as-boolean`](https://palantir.github.io/tslint/rules/no-promise-as-boolean/) (#4790)
45 - [docs] link to OSS fellowship medium post in README (#4821)
46
47 Thanks to our contributors!
48
49 - Josh Pike
50 - Tanmoy Bhowmik
51 - Michael Withagen
52 - Evgeniy Timokhov
53 - Vitalij Krotov
54 - Josh Goldberg
55 - Veda
56 - Guido
57 - Robert Fink
58 - Max Sysoev
59
60
61 ## v5.18.0
62
63 - [feature] New `--print-config` CLI flag (#4744)
64 - [bugfix] [`no-unnecessary-type-assertion`](https://palantir.github.io/tslint/rules/no-unnecessary-type-assertion/) no longer flags `x!` non-null assertions if `--strictNullChecks` is not enabled (#3724)
65 - [bugfix] [`quotemark`](https://palantir.github.io/tslint/rules/quotemark/) handles unbalanced quotes more gracefully without crashing (#4344)
66 - [docs] Add tslint-playground link to README and bug report template (#4150)
67 - [enhancement] [`no-magic-numbers`](https://palantir.github.io/tslint/rules/no-magic-numbers/) rule ignores arguments passed into default Number methods (#3668)
68 - [new-fixer] [`comment-format`](https://palantir.github.io/tslint/rules/comment-format/) (#3583)
69 - [new-rule-option] `"allow-trailing-lowercase"` option for [`comment-format`](https://palantir.github.io/tslint/rules/comment-format/) rule (#3583)
70 - [new-rule-option] `"ignore-accessors"` for [`adjacent-overload-signatures`](https://palantir.github.io/tslint/rules/adjacent-overload-signatures/) to ignore getters / setters overloads (#3718)
71 - [new-rule] [`no-async-without-await`](https://palantir.github.io/tslint/rules/no-async-without-await/) (#3945)
72 - [new-rule] [`strict-comparisons`](https://palantir.github.io/tslint/rules/strict-comparisons/) (#4519)
73
74 Thanks to our contributors!
75
76 - Josh Goldberg
77 - smoehrle
78 - Mateusz Witkowski
79 - Andy Hanson
80 - John Wiseheart
81 - Eran Shabi
82 - Tibor Blenessy
83 - AndreasGassmann
84 - Ryan Waskiewicz
85 - Isabelle
86
87
88 ## v5.17.0
89
90 - [bugfix] [`quotemark`](https://palantir.github.io/tslint/rules/quotemark/) backtic option now ignores enum members, use strict declarations, lookup types, and strings containing octal escape sequences. (#4693)
91 - [bugfix] [`no-redundant-jsdoc`](https://palantir.github.io/tslint/rules/no-redundant-jsdoc/) no longer errors on `JSDocThisTag` (#4690)
92 - [chore] Update devDependency mocha from v3.2.0 to v6.1.4 (#4669) (#4674)
93 - [chore] Update devDependency js-yaml from ^3.13.0 to ^3.13.1 (#4663)
94 - [chore] Update deprecated devDependency github to @octokit/rest (#4673)
95 - [chore] Update devDependency nyc from v13.3.0 to v14.1.1 (#4699)
96 - [deprecation] [`no-use-before-declare`](https://palantir.github.io/tslint/rules/no-use-before-declare/) rule for typescript >= 2.9.0 (#4695)
97 - [documentation] Minor fix for [`variable-name`](https://palantir.github.io/tslint/rules/variable-name/) rule metadata (#4731)
98 - [documentation] Fixed [`no-unused-variable`](https://palantir.github.io/tslint/rules/no-unused-variable/) argument count (#4683)
99 - [enhancement] Allow const assertions in [`no-object-literal-type-assertion`](https://palantir.github.io/tslint/rules/no-object-literal-type-assertion/) (#4681)
100 - [new-fixer] [`unnecessary-constructor`](https://palantir.github.io/tslint/rules/unnecessary-constructor/) (#4694)
101
102 Thanks to our contributors!
103
104 - Bjorn Stromberg
105 - Vitaliy Agoshkov
106 - knafteN
107 - Bowen Ni
108 - Waseem Ahmad
109 - Åsmund Grammeltvedt
110 - Eric Ferreira
111 - Zhen Tian
112 - Tom Lakesman
113 - zachkirsch
114
115
116 ## v5.16.0
117
118 - [bugfix] Excuse more [`quotemark`](https://palantir.github.io/tslint/rules/quotemark/) backtick edge cases and fix behavior for TS < 2.7.1 (#4642)
119 - [bugfix] Fix regression in [`interface-name`](https://palantir.github.io/tslint/rules/interface-name/) rule related to numeric characters in interface names (#4655, #4626)
120 - [enhancement] Update `nyc` from v10.2.0 to v13.3.0 (#4633)
121 - [enhancement] Migrate from deprecated [babel-code-frame](https://www.npmjs.com/package/babel-code-frame) package to new [@babel/code-frame](https://www.npmjs.com/package/@babel/code-frame) package (#4632)
122 - [enhancement] Improve error message for [`restrict-plus-operands`](https://palantir.github.io/tslint/rules/restrict-plus-operands/) rule. (#4635)
123 - [enhancement] [`comment-format`](https://palantir.github.io/tslint/rules/comment-format/) rule now whitelists `//region` comments generated by JetBrains IDE (#4609)
124 - [enhancement] Relax [`no-null-undefined-union`](https://palantir.github.io/tslint/rules/no-null-undefined-union/) rule. (#4625)
125 - [new-rule-option] `allow-else-if` option for [`unnecessary-else`](https://palantir.github.io/tslint/rules/unnecessary-else/) rule (#4599)
126 - [documentation] Fix "identifer" typo in custom rules docs (#4657)
127 - [documentation] Fix code example for [`switch-default`](https://palantir.github.io/tslint/rules/switch-default/) rule (#4650)
128 - [documentation] Fix documentation example for prose formatter (#4656)
129 - [documentation] [`no-parameter-properties`](https://palantir.github.io/tslint/rules/no-parameter-properties/): fix unclear rule description (#4629)
130 - [documentation] Fix typo in rule docs generation (#4638)
131
132 Thanks to our contributors!
133
134 - Oleg Artene
135 - William Neely
136 - Bjorn Stromberg
137 - Matthew Barry
138 - Neha Rathi
139 - Vincent Langlet
140 - rarenal
141 - Greg Jednaszewski
142 - Adam Postma
143 - Eric Ferreira
144 - Evgeniy Timokhov
145 - Martin Probst
146
147
148 ## v5.15.0
149
150 - [api] `WalkContext` and `AbstractWalker` type parameter defaults to `void` (#2600)
151 - [bugfix] [`no-void-expression`](https://palantir.github.io/tslint/rules/no-void-expression/) now allows conditional expressions (#4606)
152 - [bugfix] fix linebreak handling in [`ordered-imports`](https://palantir.github.io/tslint/rules/ordered-imports/) (#4583)
153 - [bugfix] fix [`static-this`](https://palantir.github.io/tslint/rules/static-this/) false positive for higher order components (#4580)
154 - [bugfix] Fixed crash in [`unnecessary-else`](https://palantir.github.io/tslint/rules/unnecessary-else/) from blank `if` statements (#4603)
155 - [bugfix] Fixed false positive in [`unnecessary-else`](https://palantir.github.io/tslint/rules/unnecessary-else/) after non-jumping statement (#4603)
156 - [bugfix] [`interface-name`](https://palantir.github.io/tslint/rules/interface-name/) now handles interface starting with "I18n" correctly (#4486)
157 - [bugfix] [`no-string-throw`](https://palantir.github.io/tslint/rules/no-string-throw/) fix inserts whitespace if not present after `throw` keyword (#4540)
158 - [bugfix] [`quotemark`](https://palantir.github.io/tslint/rules/quotemark/): fix some edge cases for `backtick` option (#4618)
159 - [bugfix] [`unnecessary-constructor`](https://palantir.github.io/tslint/rules/unnecessary-constructor/): don't flag non-private constructors that are actually necessary (#4619)
160 - [enhancement] Upgrade js-yaml to avoid security issue (#4595)
161 - [new-rule-option] `allow-single-line-comments` option for [`file-header`](https://palantir.github.io/tslint/rules/file-header/) rule (#4560)
162 - [new-rule-option] `ignore-rest-args` option for [`no-any`](https://palantir.github.io/tslint/rules/no-any/) rule (#4581)
163 - [new-rule] [`no-null-undefined-union`](https://palantir.github.io/tslint/rules/no-null-undefined-union/) (#4589)
164
165 Thanks to our contributors!
166
167 - Max Belsky
168 - Steve Moser
169 - Christian Flach
170 - Roman Rogowski
171 - Terry
172 - Luke
173 - Andy Hanson
174 - Vitalij Krotov
175 - Josh Goldberg
176 - Vincent Langlet
177 - Neha Rathi
178 - Eric Ferreira
179
180
181 ## v5.14.0
182
183 - [bugfix] `backtick` option for [`quotemark`](https://palantir.github.io/tslint/rules/quotemark/) rule no longer incorrectly flags string literals that must use single/double quotes (#4535)
184 - [bugfix] Fixed regression in CheckstyleFormatter backwards compatibility (#4561)
185 - [bugfix] [`whitespace`](https://palantir.github.io/tslint/rules/whitespace/) rule now lints export statements (#4554)
186 - [bugfix] [`no-trailing-whitespace`](https://palantir.github.io/tslint/rules/no-trailing-whitespace/) no longer flags files starting with a byte order mark (#4543)
187 - [enhancement] [`promise-function-async`](https://palantir.github.io/tslint/rules/promise-function-async/) now allows single statement lamda functions that delegate to another promise-returning function (#4553)
188 - [enhancement] Add note to docs about zero-indexing for machine formatters (#4544)
189 - [enhancement] Fix metadata of the [`whitespace`](https://palantir.github.io/tslint/rules/whitespace/) rule (#4551)
190 - [enhancement] Add junit output for files which are successfully linted (#4566)
191 - [new-rule-option] `underscore` option for [`no-shadowed-variable`](https://palantir.github.io/tslint/rules/no-shadowed-variable/) rule to ignore shadowed underscores (#4546)
192 - [new-rule-option] `require-const-for-all-caps` option for [`variable-name`](https://palantir.github.io/tslint/rules/variable-name/) rule (#2936)
193 - [new-rule-option] `overloads` option for [`completed-docs`](https://palantir.github.io/tslint/rules/completed-docs/) rule to enforce documentation of each overload signature (#4563)
194 - [new-rule-option] `allow-namespace-imports ` option for [`no-duplicate-imports`](https://palantir.github.io/tslint/rules/no-duplicate-imports/) rule (#4524)
195 - [new-rule-option] `allow-arguments` option for [`no-object-literal-type-assertion`](https://palantir.github.io/tslint/rules/no-object-literal-type-assertion/) rule to allow type assertions on object literals used inside call expressions (#4521)
196 - [new-rule-option] `allow-delete` option for [`no-unbound-method`](https://palantir.github.io/tslint/rules/no-unbound-method/) rule (#4548)
197 - [new-rule] [`no-tautology-expression`](https://palantir.github.io/tslint/rules/no-tautology-expression/) (#4470)
198 - [new-rule] [`static-this`](https://palantir.github.io/tslint/rules/static-this/) (#4475)
199 - [new-rule] [`unnecessary-else`](https://palantir.github.io/tslint/rules/unnecessary-else/) (#4502)
200
201 Thanks to our contributors!
202
203 - Roman Rogowski
204 - Max Belsky
205 - Edward Drapkin
206 - Dominik Palo
207 - Matthew McCune
208 - Debsmita
209 - Lucas Charles
210 - Piotr Gajowniczek
211 - Darren Anderson
212 - Noam Yogev
213 - Josh Goldberg
214 - Karol Majewski
215
216
217 ## v5.13.1
218
219 - [bugfix] Fix regression in CheckstyleFormatter backwards compatibility (#4561)
220
221 ## v5.13.0
222
223 - [deprecation] Mark `RuleWalker` and `ProgramAwareRuleWalker` as deprecated (#4413)
224 - [bugfix] Create output directory when the output path (specified by `--out` CLI flag) does not exist. (#4507)
225 - [bugfix] Explicit disabling of rules is now copied over to jsRules when using `jsRules: true` (#4517)
226 - [bugfix] `unknown` is recognized as simple type in [`array-type`](https://palantir.github.io/tslint/rules/array-type/) (#4433)
227 - [bugfix] [`ban`](https://palantir.github.io/tslint/rules/ban/): Fix a false positive which would occur when banning method calls nested inside objects. Previously, banning `["a", "b", "c"]` would trigger lint failures on the syntax `b.c()`, which was not the intent of this rule.  (#4383)
228 - [bugfix] Fixed single-line comment parsing for completed-docs (#3557)
229 - [bugfix] [`trailing-comma`](https://palantir.github.io/tslint/rules/trailing-comma/) no longer crashes if it cannot find the closing parenthesis of a function declaration (#4457)
230 - [bugfix] [`no-unsafe-any`](https://palantir.github.io/tslint/rules/no-unsafe-any/): allow implicitly downcasting `any` to `unknown` (#4442)
231 - [bugfix] Add `grouped-imports` to `tslint:all` (#4420)
232 - [docs] Fix docs typo (#4395)
233 - [enhancement] Add "formatting" rule category (#2832)
234 - [enhancement] [`ordered-imports`](https://palantir.github.io/tslint/rules/ordered-imports/) now supports a groups option to provide custom grouping rules. (#4134)
235 - [enhancement] Convert [`completed-docs`](https://palantir.github.io/tslint/rules/completed-docs/) to an untyped rule (#3557)
236 - [enhancement] Checkstyle formatter includes every file linted regardless of lint errors. (#3838)
237 - [enhancement] Formatters now receive the full list of of linted file paths as a third argument. (#3838)
238 - [enhancement] [`array-type`](https://palantir.github.io/tslint/rules/array-type/) rule handles Typescript 3.0's unknown type properly (#4219)
239 - [enhancement] [`import-blacklist`](https://palantir.github.io/tslint/rules/import-blacklist/) now supports regular expression patterns for blacklisting (#3504)
240 - [new-rule] `no-restricted-globals` (#3824)
241 - [new-fixer] added fixer for `newline-before-return` rule (#4482)
242 - [new-fixer] [`number-literal-format`](https://palantir.github.io/tslint/rules/number-literal-format/) now includes auto fix (#4496)
243 - [new-rule-option] Added `whitelist` option to [`no-unbound-method`](https://palantir.github.io/tslint/rules/no-unbound-method/) (#4472)
244 - [new-rule-option] Added `jsx-ignore` option to [`no-magic-numbers`](https://palantir.github.io/tslint/rules/no-magic-numbers/) rule (#4460)
245 - [new-rule-option]: [`object-literal-sort-keys`](https://palantir.github.io/tslint/rules/object-literal-sort-keys/): Add `match-declaration-order-only` option (#3748)
246 - [new-rule-option] [`strict-boolean-expressions`](https://palantir.github.io/tslint/rules/strict-boolean-expressions/) accepts `ignore-rhs` option to disable checking the right-hand side of the `&&` and `||` operators as strictly boolean. (#4159)
247
248 Thanks to our contributors!
249
250 - Enes SOYLU
251 - jbsingh
252 - Sven Efftinge
253 - James C. Davis
254 - Norio Suzuki
255 - Thomas den Hollander
256 - Retsam
257 - Dobes Vandermeer
258 - Young Min Kim
259 - Grant Wu
260 - Felix Schindler
261 - Lydia
262 - Adrian Leonhard
263 - James Jensen
264 - Athene Noctua
265 - Allen
266 - Vincent Langlet
267 - Paul Medynski
268 - Liz
269 - Piotr Gajowniczek
270 - Max Sysoev
271 - Jakub Beneš
272 - Ian Mobley
273 - 周昊宇
274 - Nazanin Delam
275 - Matt R. Wilson
276 - Andy Hanson
277 - Zen
278 - Josh Goldberg
279 - Jeff Lau
280
281
282 ## v5.12.1
283
284 ## :hammer_and_wrench: Bugfixes & enhancements
285
286 - [bugfix] Revert breaking change to tslint:recommended, update tslint:latest (#4404)
287 - [bugfix] Correcting fixer for the [`increment-decrement`](https://palantir.github.io/tslint/rules/increment-decrement/) rule (#4415)
288 - [bugfix] Fix [`strict-type-predicates`](https://palantir.github.io/tslint/rules/strict-type-predicates/) with `unknown` (#4444)
289 - [bugfix] Skip linting of `.json` files to avoid problems with `--resolveJsonModule` compiler option (#4001)
290 - [bugfix] fix some [`quotemark`](https://palantir.github.io/tslint/rules/quotemark/) issues when using backticks with the `avoid-template` option (#4408)
291 - [enhancement] Mention file names in test script parse failures (#4397)
292
293 Thanks to our contributors!
294 - Young Min Kim
295 - Enes SOYLU
296 - Thomas den Hollander
297 - Adrian Leonhard
298
299 ## v5.12.0
300
301 ## :tada: Features
302
303 -   [feature] Configure format from file (#4155)
304 -   [feature] Make cli expect array for rules dir (#3788)
305 -   [feature] Set js rules to all valid active rules (#3641)
306 -   [improvement] Add tests for typescript@2.9 and typescript@3.0 (#4053)
307 -   [new-fixer] [`type-literal-delimiter`](https://palantir.github.io/tslint/rules/type-literal-delimiter/) (#3964)
308 -   [new-rule-option] [`whitespace`](https://palantir.github.io/tslint/rules/whitespace/) Add whitespace rule for open braces (#4068)
309 -   [new-rule-option] [`file-name-casing`](https://palantir.github.io/tslint/rules/file-name-casing/): Add file name whitelist (#4206)
310 -   [new-rule-option] [`object-literal-sort-keys`](https://palantir.github.io/tslint/rules/object-literal-sort-keys/): `locale-compare` (#4193)
311 -   [new-rule-option] [`strict-boolean-expressions`](https://palantir.github.io/tslint/rules/strict-boolean-expressions/) adds `allow-enum` to allow using enums in boolean expressions (#3604)
312 -   [new-rule-option] [`import-blacklist`](https://palantir.github.io/tslint/rules/import-blacklist/): support blacklisting specific named exports (#3926)
313 -   [new-rule-option] [`type-literal-delimiter`](https://palantir.github.io/tslint/rules/type-literal-delimiter/): Add `{ singleLine: "always" | "never"}` (#3964)
314 -   [new-rule-option] [`file-name-casing`](https://palantir.github.io/tslint/rules/file-name-casing/): Add `snake-case` option (#4081)
315 -   [new-rule-option] [`file-header`](https://palantir.github.io/tslint/rules/file-header/): Enforce Blank Line after File Header (#3740)
316 -   [new-rule] [`ban-ts-ignore`](https://palantir.github.io/tslint/rules/ban-ts-ignore/) (#3728)
317 -   [new-rule] [`function-constructor`](https://palantir.github.io/tslint/rules/function-constructor/) (#4198)
318 -   [new-rule] [`increment-decrement`](https://palantir.github.io/tslint/rules/increment-decrement/) (#3575)
319 -   [new-rule] [`no-default-import`](https://palantir.github.io/tslint/rules/no-default-import/) (#4023)
320 -   [new-rule] [`unnecessary-constructor`](https://palantir.github.io/tslint/rules/unnecessary-constructor/) (#3647)
321 -   [new-rule] [`comment-type`](https://palantir.github.io/tslint/rules/comment-type/) (#4008)
322 -   [new-rule] [`unnecessary-bind`](https://palantir.github.io/tslint/rules/unnecessary-bind/) (#3588)
323
324 ## :hammer_and_wrench: Bugfixes & enhancements
325
326 -   [api] Allow `exclude` to work with node API (#4143)
327 -   [api] Upgrade TSLint to support TS 3.1 (#4274)
328 -   [bugfix] Allow whitelisted modules to start with `@` symbol (#4192)
329 -   [bugfix] Added exception for generators in [`return-undefined`](https://palantir.github.io/tslint/rules/return-undefined/) rule (#4370)
330 -   [bugfix] Allow unknown in 'no-object-literal-type-assertion' rule. (#4362)
331 -   [bugfix] Completed docs rule can check single-line comments (#3841)
332 -   [bugfix] [`prefer-method-signature`](https://palantir.github.io/tslint/rules/prefer-method-signature/): Correct the auto-fix code of rule, now capable to handle multiline signature. (#4066)
333 -   [bugfix] Default logger.error should log to stderr. (#3982)
334 -   [bugfix] Fixes an issue where TSLint doesn't correctly resolve packages in a `node_modules` folder that are symlinked to another location where their dependencies are satisfied. (#4295)
335 -   [bugfix] Fix configuration tests when comparing rules (#4346)
336 -   [bugfix] Fix semicolon: Cannot read property 'initializer' of undefined (#4351)
337 -   [bugfix] Fix whitespace rule in importClause with 'as' statement (#4249)
338 -   [bugfix] [`no-invalid-this`](https://palantir.github.io/tslint/rules/no-invalid-this/): fixes false positives on method-like syntax and false negatives on nested functions (#4034)
339 -   [bugfix] [`one-line`](https://palantir.github.io/tslint/rules/one-line/): Check block in a case clause (#3619)
340 -   [bugfix] [`whitespace`](https://palantir.github.io/tslint/rules/whitespace/) Don't require space between import and paren with in type imports (#4243)
341 -   [bugfix] remove [`no-unused-variable`](https://palantir.github.io/tslint/rules/no-unused-variable/) from `tslint:all` (#4079)
342 -   [bugfix] [`callable-types`](https://palantir.github.io/tslint/rules/callable-types/) support interfaces containing a single construct signature (#4291) (#4352)
343 -   [bugfix] [`ordered-imports`](https://palantir.github.io/tslint/rules/ordered-imports/): Setting `import-sources-order: any` no longer invalidates `grouped-imports: true` (#4374)
344 -   [develop] Add issue templates (#4028)
345 -   [develop] Add test for 3.0 (#4119)
346 -   [develop] Changes the node version from 4 to 6 for TS 2.1 tests. (#4282)
347 -   [develop] Fix prettier command in package.json (#4275)
348 -   [develop] Fix semantic merge break from #4374 and #3733 (#4378)
349 -   [develop] Fix typo in launch.json (#4287)
350 -   [develop] Prettier (#4012)
351 -   [develop] Re-ran Prettier on source files again, with some more ignores (#4270)
352 -   [develop] Update 'json-stringify-pretty-compact' to 1.2.0 and remove unnecessary type declaration (#4371)
353 -   [develop] Upgrade prettier and run over all files (#4214)
354 -   [docs] "< 0" means less than zero, not greater than (#4183)
355 -   [docs] Added badges for dependencies status (#4160)
356 -   [docs] Additional code examples for rules (#3869)
357 -   [docs] Clarify no-shadowed-variable doc (#4347)
358 -   [docs] Fix docs typo (#4165)
359 -   [docs] Fix docs typo (#4182)
360 -   [docs] Fix typo in index.md (#4242)
361 -   [docs] Fix typos in formatter descriptions (#4288)
362 -   [docs] Fixed typo in documentation (#4047)
363 -   [docs] Includes new name Azure DevOps for VSO (#4289)
364 -   [docs] Typo correction in no-unused-expression (#4322)
365 -   [docs] Update documentation to reflect changes made in #2229. (#4336)
366 -   [docs] Update stylish example (#4095)
367 -   [docs] Use latest docs deps to avoid vulnerable libs (#4366)
368 -   [docs] prefer-object-spread: this is new to ES2018, not ES2015 (#4321)
369 -   [documentation] Update configuration documentation to include array syntax (#4258)
370 -   [enhancement] Add `homepage` to package.json (#4101)
371 -   [enhancement] Add esSpecCompliant: true to recommended trailing-comma config (#4072)
372 -   [enhancement] Add new tests to workflows (#4054)
373 -   [enhancement] Add quiet flag to hide warnings (#4025)
374 -   [enhancement] Don't flag unmatched ${ in no-invalid-template-strings (#3769)
375 -   [enhancement] Show offending value in 'no-magic-numbers' error message (#4332)
376 -   [enhancement] [`ordered-imports`](https://palantir.github.io/tslint/rules/ordered-imports/): When `grouped-imports` option of the rule is set, the fact that imports of the same type are all in one group is also checked. (#3733)
377 -   [enhancement] Yaml parser now uses default schema, allowing for `<<:` to be used to merge anchors (#4350)
378 -   [enhancement] Improve JUnit formatter (#4327)
379 -   [enhancement] completed-docs: check properties and methods in interfaces (#4032)
380 -   [enhancement] file-name-casing-rule supports regex expression for matching file (#4284)
381 -   [enhancement] prose formatter uses `line:column` instead of `[line, column]` (#4222)
382 -   [rule-change] Add "backtick" option for quotemark (#4029)
383 -   [rule-change] Allow void expressions in binary expressions (#4323)
384
385 Thanks to our contributors!
386
387 -   Shinigami
388 -   Matthew Herbst
389 -   Joshua R
390 -   John Wiseheart
391 -   Mitchell Wills
392 -   Eric Ferreira
393 -   Daniel Reichhart
394 -   Rui
395 -   Pavel Birukov
396 -   Brian Schlenker
397 -   Michael Black
398 -   Andy Hanson
399 -   atsu85
400 -   PomanoB
401 -   Oleg Vaskevich
402 -   Daniel McNab
403 -   Jan Pilzer
404 -   Sebastian Silbermann
405 -   Michael Lavina
406 -   reduckted
407 -   Ryan Waskiewicz
408 -   Bowen Ni
409 -   Josh Goldberg
410 -   Erik
411 -   Nathan
412 -   Kevin Verdieck
413 -   Joe Chung
414 -   Peter Safranek
415 -   Xavier Downs
416 -   Igor Ovsiannikov
417 -   RyosukeFukushima
418 -   Andrew Boyton
419 -   samuela
420 -   stefanhamburger
421 -   Carsten Dietzel
422 -   Jakob Warkotsch
423 -   Karthick Manoharan
424 -   Ian Clanton-Thuon
425 -   Yordis Prieto
426 -   Mike Frysinger
427 -   Dario Banfi
428 -   Gérôme Grignon
429 -   Antony74
430 -   Morgan Zolob
431 -   Young Min Kim
432 -   rrogowski
433 -   Eric Anderson
434 -   Simon Marchi
435 -   ulrichb
436 -   Marvin Altemeier
437 -   Ifiok Jr
438 -   Andrew MacLeay
439 -   Ethan
440 -   Dan Homola
441 -   NN
442 -   Roman Rogowski
443
444 ## v5.11.0
445
446 ## :warning: Deprecations
447
448 -   [deprecation][`no-unused-variable`](https://palantir.github.io/tslint/rules/no-unused-variable/) is deprecated because typescript now covers most of its functionality (#3919)
449
450 ## :tada: Features
451
452 -   [new-rule][`file-name-casing`](https://palantir.github.io/tslint/rules/file-name-casing/) (#3978)
453 -   [new-fixer] Add fixer for [`switch-final-break`](https://palantir.github.io/tslint/rules/switch-final-break/) (#3615)
454 -   [new-fixer] Implemented fixer for [`member-ordering`](https://palantir.github.io/tslint/rules/member-ordering/) and added corresponding tests. (#3935)
455 -   [new-rule-option] Add whitelist for [`no-implicit-dependencies`](https://palantir.github.io/tslint/rules/no-implicit-dependencies/) (#3979)
456
457 ## :hammer_and_wrench: Bugfixes & enhancements
458
459 -   [bugfix][`no-use-before-declare`](https://palantir.github.io/tslint/rules/no-use-before-declare/) Fixes false positives when using the destructuring syntax (#3761) (#3876)
460 -   [bugfix] Fix Copyright: @license JSDoc tag was missing (#3879)
461 -   [bugfix] Fix missing newline at end of file (#3896)
462 -   [bugfix] allow-empty-functions option of [`no-empty`](https://palantir.github.io/tslint/rules/no-empty/) rule is now properly respecting empty methods (#3897)
463 -   [bugfix][`no-magic-numbers`](https://palantir.github.io/tslint/rules/no-magic-numbers/) - support for negative zero (#3903)
464 -   [bugfix] Handle tsconfig.json errors without using JSON.stringify (#3908)
465 -   [bugfix] Fix CI: [`no-implicit-dependencies`](https://palantir.github.io/tslint/rules/no-implicit-dependencies/) test failure; typescript@next failure (#4019)
466 -   [bugfix] Fix edge case in [`no-console`](https://palantir.github.io/tslint/rules/no-console/) rule (#4041)
467 -   [docs] Fix typos in the [`no-floating-promises`](https://palantir.github.io/tslint/rules/no-floating-promises/) rule docs. (#3886)
468 -   [docs] Updated [`prefer-while`](https://palantir.github.io/tslint/rules/prefer-while/) docs to be semantically correct (#3888)
469 -   [docs] Fix link to configuration page (#3891)
470 -   [docs] Fix docs typo (#3898)
471 -   [docs] Fix docs typo (#3910)
472 -   [enhancement] Turn on strictPropertyInitialization for src/ and test/ (#3924)
473 -   [enhancement] Use Buffer.allocUnsafe instead of the deprecated new Buffer() (#3985)
474 -   [enhancement] Improve [`radix`](https://palantir.github.io/tslint/rules/radix/) rule checks (#3901)
475 -   [enhancement] Output +/- on diff so added/removed empty lines are visible. (#3973)
476 -   [rule-change][`no-implicit-dependencies`](https://palantir.github.io/tslint/rules/no-implicit-dependencies/) now always considers peer dependencies (#3875)
477
478 Thanks to our contributors!
479
480 -   Bowen Ni
481 -   Peter Safranek
482 -   Saugat Acharya
483 -   Jason Mendes
484 -   Ryan Waskiewicz
485 -   Dariusz Rumiński
486 -   Xinhu Liu
487 -   Rado Kirov
488 -   aervin\_
489 -   Josh Goldberg
490 -   mertdeg2
491 -   Jason Killian
492 -   Adrian Leonhard
493 -   david-cannady
494 -   Andy Russell
495 -   Tibor Blenessy
496 -   Andrew Crites
497 -   Pavel Birukov
498 -   shalomdotnet
499
500 ## v5.10.0
501
502 ## :tada: Features
503
504 -   [new-rule][`prefer-while`](https://palantir.github.io/tslint/rules/prefer-while/) (#3750)
505 -   [new-fixer][`comment-format`](https://palantir.github.io/tslint/rules/comment-format/) (#3845)
506 -   [new-rule-option] `"allow-empty-functions"` for [`no-empty`](https://palantir.github.io/tslint/rules/no-empty/) rule (#3624)
507 -   [new-rule-option] New options for [`promise-function-async`](https://palantir.github.io/tslint/rules/promise-function-async/) specifying what kinds of functions to check (#3807)
508
509 ## :hammer_and_wrench: Bugfixes & enhancements
510
511 -   [bugfix][`file-header`](https://palantir.github.io/tslint/rules/file-header/) rule plays nice with [`no-trailing-whitespace`](https://palantir.github.io/tslint/rules/no-trailing-whitespace/) rule (#3802)
512 -   [bugfix][`no-unbound-method`](https://palantir.github.io/tslint/rules/no-unbound-method/) rule allows square bracket property access (#3610)
513 -   [bugfix][`no-unsafe-any`](https://palantir.github.io/tslint/rules/no-unsafe-any/) no longer marks native JSX elements as unsafe (#3699)
514 -   [enhancement][`file-header`](https://palantir.github.io/tslint/rules/file-header/) auto-fixes use '!' character to ensure header stays above imports (#3741)
515 -   [enhancement] Better error messages if a rule crashes (#3836)
516 -   [enhancement] Better error messages when no valid rules are specified (#3729)
517 -   [enhancement] Better lint messages for unused imports in [`no-unused-variable`](https://palantir.github.io/tslint/rules/no-unused-variable/) rule (#3831)
518 -   [docs] Improve documentation of cli flag --project (#3703)
519 -   [docs] Added short rationales for about thirty rules (#3734)
520 -   [docs] Added optional capability to provide code examples in rules' metadata (#3602)
521 -   [docs] Many small docs fixes and tweaks from many great contributors!
522
523 Thanks to our contributors!
524
525 -   Achim Weimert
526 -   BB9z
527 -   Blair Zajac
528 -   Chia-Lun Wu (Leo)
529 -   Ethan
530 -   Janis Koehr
531 -   Josh Goldberg
532 -   Julian Verdurmen
533 -   Lucas Sloan
534 -   Mark Vincze
535 -   Martin Möhwald
536 -   Oliver Joseph Ash
537 -   Pichest Wongsiripiphat
538 -   Rafael Santana
539 -   Ruben Bridgewater
540 -   Ryan Waskiewicz
541 -   Sehrope Sarkuni
542 -   Suchan Lee
543 -   Victor Belozyorov
544 -   aervin\_
545 -   cwgorman
546 -   felipeissa
547 -   jishi9
548
549 ## v5.9.1
550
551 ## :hammer_and_wrench: Bugfixes
552
553 -   [bugfix] Removed extraneous deprecation warning produced when using `tslint:recommended` or `tslint:latest` by disabling `typeof-compare` in these rulesets. (#3639)
554 -   [bugfix] Resolve directories as absolute paths when validating custom `rulesDirectory` paths, which fixes usage with tslint-loader. (#3640)
555
556 ## v5.9.0
557
558 ## :warning: Deprecations
559
560 -   [deprecation] Several utility functions from `src/language/utils.ts` have been deprecated (#3476)
561 -   [deprecation] Linting non-existent files now outputs a warning. This will be an error in TSLint 6. (#3313)
562
563 ## Configuration inheritance changes
564
565 Significant changes have been made to configuration inheritance to address a long-standing UX issue around `defaultSeverity`: #2569.
566
567 `defaultSeverity` defined in a `tslint.json` file will now override the `defaultSeverity` value defined in any configurations you are extending.
568 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
569 configuration files, the `defaultSeverity` defined in the last one wins.
570
571 In practice, this allows users to, for example, more easily use the built-in TSLint configurations (`tslint:recommended`, `tslint:latest`, `tslint:all`)
572 and treat all errors as warnings instead of errors.
573
574 For more details, see the relevant PRs:
575
576 -   Override `defaultSeverity` defined in extended configs (#3449)
577 -   Inherit defaultSeverity and apply it to preceding base configs (#3530)
578
579 ## :tada: Features
580
581 -   [feature] Support yaml configuration files (#1598) (#3433)
582 -   [new-fixer][`file-header`](https://palantir.github.io/tslint/rules/file-header/) (#3475)
583 -   [new-rule][`no-dynamic-delete`](https://palantir.github.io/tslint/rules/no-dynamic-delete/) (#3573)
584 -   [new-rule][`prefer-readonly`](https://palantir.github.io/tslint/rules/prefer-readonly/) (#2896)
585 -   [new-rule][`newline-per-chained-call`](https://palantir.github.io/tslint/rules/newline-per-chained-call/) (#3278)
586 -   [new-rule-option] `"temporalDeadZone"` for [`no-shadowed-variable`](https://palantir.github.io/tslint/rules/no-shadowed-variable/) to ignore shadowing in the temporal dead zone of classes, parameters, enums and variables declared with `let` or `const`
587     (#3389)
588 -   [new-rule-option] `"shorthand-first"` for [`object-literal-sort-keys`](https://palantir.github.io/tslint/rules/object-literal-sort-keys/) (#3607)
589 -   [new-rule-option] Add support for an ignore pattern for [`max-line-length`](https://palantir.github.io/tslint/rules/max-line-length/) (#3099)
590
591 ## :hammer_and_wrench: Bugfixes & enhancements
592
593 -   [bugfix] Update commander.js dependency to prevent users from transitively installing a buggy 2.12.0 release (#3510)
594 -   [bugfix] `--project` excludes all files of external dependencies (#3320)
595 -   [bugfix] Show errors when `tsconfig.json` is invalid (#3410)
596 -   [bugfix][`no-implicit-dependencies`](https://palantir.github.io/tslint/rules/no-implicit-dependencies/) don't crash on malformed package.json (#3373)
597 -   [bugfix][`strict-type-predicates`](https://palantir.github.io/tslint/rules/strict-type-predicates/) allows comparing typeof result with non-literals (#3542)
598 -   [bugfix][`no-redundant-jsdoc`](https://palantir.github.io/tslint/rules/no-redundant-jsdoc/) fixed crash on unhandled tag (#3414)
599 -   [bugfix][`object-literal-sort-keys`](https://palantir.github.io/tslint/rules/object-literal-sort-keys/) fixed regression that effectively disabled the rule with `\r\n` line breaks (#3427)
600 -   [bugfix][`curly`](https://palantir.github.io/tslint/rules/curly/) fixer now correctly handles comments (#3473)
601 -   [bugfix][`no-unsafe-any`](https://palantir.github.io/tslint/rules/no-unsafe-any/) fixed false-positive with namespaced types (#3487)
602 -   [bugfix] Removed potentailly dangerous fixer for [`no-any`](https://palantir.github.io/tslint/rules/no-any/) (#3486)
603 -   [bugfix][`no-unnecessary-type-assertion`](https://palantir.github.io/tslint/rules/no-unnecessary-type-assertion/) fixed false negatives for types with numeric keys (#3468)
604 -   [bugfix][`callable-types`](https://palantir.github.io/tslint/rules/callable-types/) adds parentheses when fixing a type literal inside an array type (#3440)
605 -   [bugfix][`no-unsafe-any`](https://palantir.github.io/tslint/rules/no-unsafe-any/) allows spreading an `any` value into an object (#3439)
606 -   [bugfix] no unnecessary whitespace before argument in callback functions fixed with [`arrow-parens`](https://palantir.github.io/tslint/rules/arrow-parens) fixer (#3618)
607 -   [bugfix][`prefer-const`](https://palantir.github.io/tslint/rules/prefer-const/) false negative with index signature named like a variable (#3385)
608 -   [bugfix][`whitespace`](https://palantir.github.io/tslint/rules/whitespace) rule checks property declarations if `"check-decl"` is enabled (#3546)
609 -   [bugfix] Using ternary operator for calling super() now passes [`no-duplicate-super`](https://palantir.github.io/tslint/rules/no-duplicate-super) rule. (#3544)
610 -   [bugfix][`no-shadowed-variable`](https://palantir.github.io/tslint/rules/no-shadowed-variable/) now excludes declaration files and ambient modules (#3387)
611 -   [bugfix][`no-duplicate-imports`](https://palantir.github.io/tslint/rules/no-duplicate-imports) Allow duplicate imports from separate ambient module declarations (#3398)
612 -   [bugfix][`await-promise`](https://palantir.github.io/tslint/rules/await-promise/) correctly recognises classes extending Promise (#3383)
613 -   [bugfix][`prefer-conditional-expression`](https://palantir.github.io/tslint/rules/prefer-conditional-expression/): don't repeat error on nested if statements (#3528)
614 -   [bugfix][`completed-docs`](https://palantir.github.io/tslint/rules/completed-docs/): don't require documentation on methods in object literals (#3532)
615 -   [bugfix][`one-line`](https://palantir.github.io/tslint/rules/one-line/) fixed crash on syntax error in class or interface (#3538)
616 -   [bugfix][`no-redundant-jsdoc`](https://palantir.github.io/tslint/rules/no-redundant-jsdoc/) allow `@template` tag if it has a description (#3415)
617 -   [bugfix] Fix condition for deprecation of [`typeof-compare`](https://palantir.github.io/tslint/rules/typeof-compare) (#3429)
618 -   [enhancement] Better error message for files not contained in the project (#3313)
619 -   [enhancement] `"properties"` option for [`completed-docs`](https://palantir.github.io/tslint/rules/completed-docs/) rule now checks getter and setter accessors. (#3497)
620 -   [enhancement][`no-magic-numbers`](https://palantir.github.io/tslint/rules/no-magic-numbers) ignores parseInt radix parameter (#3536)
621 -   [enhancement] Avoid duplicate I/O when using `--project` option (#3313)
622 -   [enhancement] clicking the filename in `stylish`-formatter's output jumps to the first failure in that file. (#3491)
623 -   [enhancement][`ban-comma-operator`](https://palantir.github.io/tslint/rules/ban-comma-operator/) ignores comma operator inside for-loop incrementor (#3485)
624 -   [enhancement][`space-within-parens`](https://palantir.github.io/tslint/rules/space-within-parens/) updated to always allow empty parentheses `()`. (#3513)
625 -   [enhancement] Better error message syntax for [`completed-docs`](https://palantir.github.io/tslint/rules/completed-docs/) modifier lists (#3379)
626 -   [enhancement] Improve failure message & docs for [`ban-comma-operator`](https://palantir.github.io/tslint/rules/ban-comma-operator/) (#3384)
627 -   [enhancement] Output code warnings in yellow instead of red for codeFrame formatter (#3402)
628 -   [enhancement] Converted [`completed-docs`](https://palantir.github.io/tslint/rules/completed-docs) rule to use a function instead of a walker (#3466)
629 -   [docs][`ban-comma-operator`](https://palantir.github.io/tslint/rules/ban-comma-operator/): fix metadata, list as "functionality" rule (#3612)
630 -   [docs] Enhance [`no-use-before-declare`](https://palantir.github.io/tslint/rules/no-use-before-declare/) documentation to clarify the rule's status (#3520)
631 -   [docs] Enhance [`await-promise`](https://palantir.github.io/tslint/rules/await-promise/) options documentation (#3519)
632 -   [docs] Add `hasFix` metadata for the [`indent`](https://palantir.github.io/tslint/rules/indent) rule (#3529)
633 -   [docs] Clearer rule description for [`no-irregular-whitespace`](https://palantir.github.io/tslint/rules/no-irregular-whitespace) (#3627)
634
635 Thanks to our contributors!
636
637 -   Klaus Meinhardt
638 -   Josh Goldberg
639 -   Chris Barr
640 -   Nathan Shively-Sanders
641 -   Jeremy Morton
642 -   Sergey Koshechkin
643 -   Daniel Kucal
644 -   Eric Smekens
645 -   Johannes Choo
646 -   Elena Vilchik
647 -   Eugene Timokhov
648 -   Carlo Bottiglieri
649 -   reduckted
650 -   Glavin Wiechert
651 -   jbsingh
652 -   Mateusz Witkowski
653 -   HideDev
654 -   Bruno Lemos
655 -   aervin\_
656 -   Roman
657 -   Ryan Waskiewicz
658
659 ## v5.8.0
660
661 ## :warning: Deprecations
662
663 -   [deprecation][`typeof-compare`](https://palantir.github.io/tslint/rules/typeof-compare/) is deprecated because typescript already does that check (#3286)
664 -   [deprecation] CLI argument `--type-check` is no longer necessary and will be removed in the next major version (#3322)
665
666 ## Updates to `tslint:latest` configuration
667
668 ```diff
669 +    "ban-comma-operator": true,
670 +    "jsdoc-format": {
671 +        options: "check-multiline-start",
672 +    },
673 +    "no-duplicate-switch-case": true,
674 +    "no-implicit-dependencies": true,
675 +    "no-return-await": true,
676 ```
677
678 ## :tada: Features
679
680 -   [feature] Added `linterOptions` configuration field to `tslint.json`, which supports a list of `exclude` globs to disable linting for a subset of files (#2409)
681 -   [new-rule][`no-return-await`](https://palantir.github.io/tslint/rules/no-return-await/) (#3233)
682 -   [new-rule][`no-redundant-jsdoc`](https://palantir.github.io/tslint/rules/no-redundant-jsdoc/) (#2754)
683 -   [new-rule][`no-duplicate-switch-case`](https://palantir.github.io/tslint/rules/no-duplicate-switch-case/) (#2937)
684 -   [new-rule][`no-implicit-dependencies`](https://palantir.github.io/tslint/rules/no-implicit-dependencies/) (#3343)
685 -   [new-rule][`no-unnecessary-class`](https://palantir.github.io/tslint/rules/no-unnecessary-class/) (#3119)
686 -   [new-rule][`ban-comma-operator`](https://palantir.github.io/tslint/rules/ban-comma-operator/) (#3250)
687 -   [new-fixer][`one-line`](https://palantir.github.io/tslint/rules/one-line/) (#3200)
688 -   [new-fixer][`curly`](https://palantir.github.io/tslint/rules/curly/) (#3262)
689 -   [new-rule-option][`jsdoc-format`](https://palantir.github.io/tslint/rules/jsdoc-format/) adds option `"check-multiline-start"` to enforce the first line of a multiline JSDoc comment to be empty. (#3181)
690 -   [new-rule-option][`trailing-comma`](https://palantir.github.io/tslint/rules/trailing-comma/) adds option `"esSpecCompliant"` to make it compatible with the ES spec regarding trailing commas after object/array rest and rest parameters. (#3176)
691 -   [new-rule-option] `"check-parameter-property"` option for [`member-access`](https://palantir.github.io/tslint/rules/member-access/) rule (#3325)
692 -   [new-rule-option] `"strict-bound-class-methods"` option for [`semicolon`](https://palantir.github.io/tslint/rules/semicolon/) rule (#3294)
693 -   [new-rule-option] `"grouped-imports"` option for [`ordered-imports`](https://palantir.github.io/tslint/rules/ordered-imports/) rule (#3138)
694 -   [new-rule-option] `"ignore-blank-lines"` option for [`no-trailing-whitespace`](https://palantir.github.io/tslint/rules/no-trailing-whitespace/) rule (#3346)
695 -   [new-rule-option] `"never"` option for [`object-literal-shorthand`](https://palantir.github.io/tslint/rules/object-literal-shorthand/) disallows shorthand notation (#3268)
696 -   [new-rule-option] `"exclude-class-expressions"` option for [`max-classes-per-file`](https://palantir.github.io/tslint/rules/max-classes-per-file/) rule (#3281)
697 -   [new-rule-option][`no-unnecessary-type-assertion`](https://palantir.github.io/tslint/rules/no-unnecessary-type-assertion/) supports a whitelist of types to ignore (#3257)
698 -   [new-rule-option] `"module-source-path"` for [`ordered-imports`](https://palantir.github.io/tslint/rules/ordered-imports/) allows sorting imports by trailing end of path (#3178)
699 -   [new-formatter] JUnit (#3194)
700
701 ## :hammer_and_wrench: Bugfixes & enhancements
702
703 -   [bugfix][`no-empty-interface`](https://palantir.github.io/tslint/rules/no-empty-interface/) allows providing type arguments for extended type (#3260)
704 -   [bugfix] Fixed line switches to not disable failures in the next line following the disabled line (#3177)
705 -   [bugfix][`return-undefined`](https://palantir.github.io/tslint/rules/return-undefined/) handles union return types in async functions (#3298)
706 -   [bugfix][`deprecation`](https://palantir.github.io/tslint/rules/deprecation/) checks correct constructor overload (#3203)
707 -   [bugfix][`return-undefined`](https://palantir.github.io/tslint/rules/return-undefined/) declared return type takes precedence over contextual type (#3298)
708 -   [bugfix] Correctly mark `inputFilePath` as an optional parameter in `Configuration.findConfiguration()` (#3195)
709 -   [bugfix][`return-undefined`](https://palantir.github.io/tslint/rules/return-undefined/) fixed regressions: once again allows anything if return type is `any` (#3298)
710 -   [bugfix][`only-arrow-functions`](https://palantir.github.io/tslint/rules/only-arrow-functions/) allow function if `this` is used in parameter initializer (#3315)
711 -   [bugfix][`no-conditional-assignment`](https://palantir.github.io/tslint/rules/no-conditional-assignment/): exclude intentional assignments, e.g. inside functions (#2629)
712 -   [bugfix][`no-angle-bracket-type-assertion`](https://palantir.github.io/tslint/rules/no-angle-bracket-type-assertion/) fixer adds parentheses when necessary (#3301)
713 -   [bugfix][`no-angle-bracket-type-assertion`](https://palantir.github.io/tslint/rules/no-angle-bracket-type-assertion/) fixed order when autofixing consecutive assertions (#3301)
714 -   [bugfix] `vso` formatter no longer duplicates output for fixed failures (#3348)
715 -   [bugfix][`no-unbound-method`](https://palantir.github.io/tslint/rules/no-unbound-method/): Allow negation of method (#3349)
716 -   [bugfix][`arrow-parens`](https://palantir.github.io/tslint/rules/arrow-parens/) with option `"ban-single-arg-parens"` no longer produces invalid code when fixed (#3247)
717 -   [bugfix] Fixed regression where the lookup of `tslint.json` stopped at the current directory. (#3309)
718 -   [bugfix] `--test` works correctly with any `compilerOptions.target` (#3296)
719 -   [bugfix] `whitepace` handles files with BOM and other irregular whitespace (#3305)
720 -   [bugfix][`callable-types`](https://palantir.github.io/tslint/rules/callable-types/) auto fix produces invalid results (#3342)
721 -   [bugfix][`no-string-literal`](https://palantir.github.io/tslint/rules/no-string-literal/) correctly fix property names with leading underscores (#3184)
722 -   [bugfix][`variable-name`](https://palantir.github.io/tslint/rules/variable-name/) fixed crash on empty variable name (#3292)
723 -   [bugfix][`trailing-comma`](https://palantir.github.io/tslint/rules/trailing-comma/) fixed crash on arrow function without parens (#3246)
724 -   [bugfix] Fix [`space-before-function-paren`](https://palantir.github.io/tslint/rules/space-before-function-paren/) for anonymous/arrow generic functions (#3085)
725 -   [bugfix] Removed warning printed to console when using the [`no-unused-variable`](https://palantir.github.io/tslint/rules/no-unused-variable/) along with the `noUnusedLocals` and `noUnusedParameters` compiler options (#3227)
726 -   [bugfix][`no-invalid-this`](https://palantir.github.io/tslint/rules/no-invalid-this/) ignores functions with a `this` param (#3267)
727 -   [enhancement] Sort failures by line and character for formatters (#3345)
728 -   [enhancement][`import-blacklist`](https://palantir.github.io/tslint/rules/import-blacklist/) also checks exports and dynamic imports (#3258)
729 -   [enhancement][`no-conditional-assignment`](https://palantir.github.io/tslint/rules/no-conditional-assignment/) added check for conditional (ternary) expressions (#2629)
730 -   [enhancement] Allow [`completed-docs`](https://palantir.github.io/tslint/rules/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)
731 -   [enhancement][`await-promise`](https://palantir.github.io/tslint/rules/await-promise/) enforces that `for-await-of` is only used with `AsyncIterable` (#3297)
732 -   [enhancement][`one-line`](https://palantir.github.io/tslint/rules/one-line/) checks type alias declarations (#3200)
733 -   [enhancement][`deprecation`](https://palantir.github.io/tslint/rules/deprecation/) checks object destructuring (#3318)
734 -   [enhancement][`no-submodule-imports`](https://palantir.github.io/tslint/rules/no-submodule-imports/) also checks exports (#3258)
735 -   [enhancement][`restrict-plus-operands`](https://palantir.github.io/tslint/rules/restrict-plus-operands/): More specific error message when arguments include strings (#3220)
736 -   [enhancement][`no-unsafe-any`](https://palantir.github.io/tslint/rules/no-unsafe-any/) checks more expressions, for example destructuring, `yield`, property initializer (#3196)
737 -   [enhancement][`object-literal-sort-keys`](https://palantir.github.io/tslint/rules/object-literal-sort-keys/): allow grouping of object properties via additional blank lines when using alphabetical ordering. (#3191)
738 -   [enhancement] Migrated CLI from using `colors` module to `chalk` module (#3171)
739 -   [enhancement][`no-unused-variable`](https://palantir.github.io/tslint/rules/no-unused-variable/) applies the ignorePattern to imports (#3187)
740
741 Thanks to our contributors!
742
743 -   Klaus Meinhardt
744 -   Charles Samborski
745 -   Donald Pipowitch
746 -   Josh Goldberg
747 -   mmkal
748 -   Erik
749 -   Csaba Miklos
750 -   Dominik Moritz
751 -   Khalid Saifullah
752 -   Lukas Spieß
753 -   Merott Movahedi
754 -   Bowen Ni
755 -   ksvitkovsky
756 -   Hutson Betts
757 -   Caleb Eggensperger
758 -   Brent Erickson
759 -   Trivikram
760 -   Brandon Furtwangler
761 -   Pavel Zet
762 -   aervin\_
763 -   Holger Jeromin
764 -   Danny Guo
765 -   Jeremy Morton
766 -   Cyril Gandon
767 -   Andy Hanson
768 -   yadan
769
770 ## v5.7.0
771
772 ## :tada: New rules, options, and fixers
773
774 -   [new-rule][`no-parameter-reassignment`](https://palantir.github.io/tslint/rules/no-parameter-reassignment/) (#3045)
775 -   [new-rule-option]: [`object-literal-sort-keys`](https://palantir.github.io/tslint/rules/object-literal-sort-keys/): Add `match-declaration-order` option (#2829)
776 -   [new-rule-option] `check-type-operator` for [`whitespace`](https://palantir.github.io/tslint/rules/whitespace/) rule (#3083)
777 -   [new-rule-option][`whitespace`](https://palantir.github.io/tslint/rules/whitespace/): Add `check-rest-spread` option (#3089)
778
779 ## :hammer_and_wrench: Bugfixes & enhancements
780
781 -   [api] `AbstractRule#applyWithFunction` allows additional parameter that is passed through to `walkFn` (#3140)
782 -   [api] `AbstractRule#applyWithFunction` has better type checking for its type parameter (#2660)
783 -   [bugfix][`member-access`](https://palantir.github.io/tslint/rules/member-access/) autofix now correcly inserts `public` keyword after decorators (#3162)
784 -   [bugfix][`prefer-const`](https://palantir.github.io/tslint/rules/prefer-const/) correctly handle `catch` without binding parameter introduced in `typescript@2.5.1` (#3151)
785 -   [bugfix][`no-invalid-template-strings`](https://palantir.github.io/tslint/rules/no-invalid-template-strings/) allows backslash-prefixed template expressions (#3116)
786 -   [bugfix][`deprecation`](https://palantir.github.io/tslint/rules/deprecation/) no longer shows errors on imports and exports (#3141)
787 -   [bugfix][`deprecation`](https://palantir.github.io/tslint/rules/deprecation/): fix false positive when calling a function or method where another overload is deprecated (#2883)
788 -   [bugfix][`whitespace`](https://palantir.github.io/tslint/rules/whitespace/): fixed `"check-separator"` for trivial `for` cases. (#3132)
789 -   [bugfix][`prefer-object-spread`](https://palantir.github.io/tslint/rules/prefer-object-spread/) prevent spreading `this` as it is not allowed by the compiler (#3126)
790 -   [bugfix] `msbuild` formatter uses backslashes in paths on Windows (#3145)
791 -   [bugfix][`no-namespace`](https://palantir.github.io/tslint/rules/no-namespace/) ignores global augmentation (#3161)
792 -   [enhancement] remove superfluous empty lines on tslint output. (#3121)
793 -   [enhancement][`no-submodule-imports`](https://palantir.github.io/tslint/rules/no-submodule-imports/) allows whitelisting of submodules like `@angular/core/testing` (#3129)
794 -   [enhancement] custom lint rules will be resolved using node's path resolution to allow for loaders like `ts-node` (#3108)
795 -   [enhancement][`quotemark`](https://palantir.github.io/tslint/rules/quotemark/) no longer requires `"single"` or `"double"` to be the first option. The rule defaults to `"double"` if none is specified. (#3114)
796 -   [enhancement][`no-unused-variable`](https://palantir.github.io/tslint/rules/no-unused-variable/) autofix removes trailing comments of imports (#3156)
797 -   [enhancement][`no-unnecessary-type-assertion`](https://palantir.github.io/tslint/rules/no-unnecessary-type-assertion/) allows certain necessary assertions to prevent type widening (#3120)
798
799 Thanks to our contributors!
800
801 -   Paul Gschwendtner
802 -   Andy Hanson
803 -   ksvitkovsky
804 -   Santi Albo
805 -   aervin
806 -   Junle Li
807 -   Joscha Feth
808 -   WiseBird
809 -   Caleb Eggensperger
810 -   WGroenestein
811 -   Bowen Ni
812
813 ## v5.6.0
814
815 ## :tada: New rules, options, and fixers
816
817 -   [new-rule][`no-duplicate-imports`](https://palantir.github.io/tslint/rules/no-duplicate-imports/) (#3075)
818 -   [new-rule][`no-submodule-imports`](https://palantir.github.io/tslint/rules/no-submodule-imports/) (#3091)
819 -   [new-rule][`space-within-parens`](https://palantir.github.io/tslint/rules/space-within-parens/) (#2959)
820 -   [new-fixer][`member-access`](https://palantir.github.io/tslint/rules/member-access/) (#2969)
821 -   [new-fixer][`no-null-keyword`](https://palantir.github.io/tslint/rules/no-null-keyword/): fix `x == null` to `x == undefined` (#2802)
822 -   [new-rule-option][`no-shadowed-variable`](https://palantir.github.io/tslint/rules/no-shadowed-variable/) let's you optionally ignore certain kinds of declarations (#3030)
823 -   [new-rule-option][`prefer-conditional-expression`](https://palantir.github.io/tslint/rules/prefer-conditional-expression/) adds `check-else-if` (#2963)
824
825 ## :hammer_and_wrench: Bugfixes & enhancements
826
827 -   [bugfix][`array-type`](https://palantir.github.io/tslint/rules/array-type/): consider `this` to be simple type (#2982)
828 -   [bugfix][`await-promise`](https://palantir.github.io/tslint/rules/await-promise/) accepts not only union types but also intersection types with Promise-like types (#2987)
829 -   [bugfix][`callable-types`](https://palantir.github.io/tslint/rules/callable-types/): don't remove export modifier of interfaces (#2962)
830 -   [bugfix][`completed-docs`](https://palantir.github.io/tslint/rules/completed-docs/): Only checks variables at the file-level. (#2950)
831 -   [bugfix][`completed-docs`](https://palantir.github.io/tslint/rules/completed-docs/): Uses correct visibility of variables. (#2950)
832 -   [bugfix][`no-floating-promises`](https://palantir.github.io/tslint/rules/no-floating-promises/): recognize rejection handler passed as second argument to `promise.then()` (#3048)
833 -   [bugfix][`no-shadowed-variable`](https://palantir.github.io/tslint/rules/no-shadowed-variable/) don't warn for shadowed type parameter on static class members (#3030)
834 -   [bugfix][`no-shadowed-variable`](https://palantir.github.io/tslint/rules/no-shadowed-variable/) fixed false positive with key name in index signature (#3030)
835 -   [bugfix][`no-shadowed-variable`](https://palantir.github.io/tslint/rules/no-shadowed-variable/) fixed false positive with parameter inside function decorator (#3030)
836 -   [bugfix][`no-unsafe-any`](https://palantir.github.io/tslint/rules/no-unsafe-any/): allow truthyness and falsyness checks (#3008)
837 -   [bugfix][`no-unused-variable`](https://palantir.github.io/tslint/rules/no-unused-variable/) fixed crash when using destructuring (#3058)
838 -   [bugfix][`one-line`](https://palantir.github.io/tslint/rules/one-line/) correctly handles multiline type parameters (#3004)
839 -   [bugfix][`prefer-for-of`](https://palantir.github.io/tslint/rules/prefer-for-of/) fixed false positives when array is modified, e.g. `arr[i]++` (#3044)
840 -   [bugfix][`prefer-object-spread`](https://palantir.github.io/tslint/rules/prefer-object-spread/) adds parens when fixing arrow function return (#3026)
841 -   [bugfix][`prefer-object-spread`](https://palantir.github.io/tslint/rules/prefer-object-spread/) permit functions as first argument to Object.assign (#3098)
842 -   [bugfix][`space-before-function-paren`](https://palantir.github.io/tslint/rules/space-before-function-paren/) Handle default exports of functions without names like anonymous functions (fixes #3040) (#3053)
843 -   [bugfix] Fixed an issue where, at runtime, the module `./test/parse` could not be located due after consumers had run `yarn clean` (#3072)
844 -   [enhancement][`no-null-keyword`](https://palantir.github.io/tslint/rules/no-null-keyword/) allows strict comparison (#2802)
845 -   [enhancement][`no-switch-case-fall-through`](https://palantir.github.io/tslint/rules/no-switch-case-fall-through/) matches `// falls through` comments case insensitive and allows trailing text (#2983)
846 -   [enhancement][`ordered-imports`](https://palantir.github.io/tslint/rules/ordered-imports/): support importEqualsDeclaration (#3102)
847 -   [enhancement] Added NaN and (+/-)Infinity as numbers to [`no-inferrable-types`](https://palantir.github.io/tslint/rules/no-inferrable-types/) (#2885)
848 -   [enhancement] Improved CLI error message when no filenames are specified (#3066)
849 -   [rule-change][`prefer-conditional-expression`](https://palantir.github.io/tslint/rules/prefer-conditional-expression/): ignore `if-else-if` by default. Use the new `"check-else-if"` option to check nested if statements (#2963)
850
851 Thanks to our contributors!
852
853 -   Klaus Meinhardt
854 -   Julian Verdurmen
855 -   Alexandre Alonso
856 -   Josh Goldberg
857 -   ksvitkovsky
858 -   Daisuke Yokomoto
859 -   Andrii Dieiev
860 -   Florent Suc
861 -   Jason Killian
862 -   Amin Pakseresht
863 -   reduckted
864 -   vilicvane
865 -   Russell Briggs
866 -   Andy Hanson
867 -   Leo Liang
868 -   Dan Homola
869 -   BehindTheMath
870 -   David Golightly
871 -   aervin
872 -   Daniel Kucal
873 -   Ika
874 -   Chris Barr
875
876 ## v5.5.0
877
878 **Editor's note**: This release features an important bugfix for overlapping fixes when using `--project` and `--fix` (#2864).
879
880 ## :tada: New rules and options
881
882 -   [new-rule-option][`completed-docs`](https://palantir.github.io/tslint/rules/completed-docs/): Add `enum-members` option (#2911)
883 -   [new-rule][`no-this-assignment`](https://palantir.github.io/tslint/rules/no-this-assignment/) (#2931)
884
885 ## :hammer_and_wrench: Bugfixes & enhancements
886
887 -   [bugfix][`encoding`](https://palantir.github.io/tslint/rules/encoding/) closes files correctly (#2958)
888 -   [bugfix][`whitespace`](https://palantir.github.io/tslint/rules/whitespace/) fix whitespace `"check-module"` to properly lint and fix errors (#2401) (#2825)
889 -   [bugfix]: [`whitespace`](https://palantir.github.io/tslint/rules/whitespace/): now correctly handles dynamic imports introduced in typescript@2.4.0 (#2924)
890 -   [bugfix][`switch-final-break`](https://palantir.github.io/tslint/rules/switch-final-break/): don't fail if break jumps to a label outside of the switch (#2914)
891 -   [bugfix][`no-shadowed-variable`](https://palantir.github.io/tslint/rules/no-shadowed-variable/): exempt `this` parameter (#2598)
892 -   [bugfix][`prefer-for-of`](https://palantir.github.io/tslint/rules/prefer-for-of/) correctly handles variable scopes and other unrelated identifiers (#2984)
893 -   [bugfix] Don't leave blank lines when [`no-unused-variable`](https://palantir.github.io/tslint/rules/no-unused-variable/) autofix removes whole import (#2901)
894 -   [cli] restore `-v` option (#2926)
895 -   [enhancement] Print stack trace of exceptions (#2890)
896 -   [enhancement] Added allow-empty-catch option to [`no-empty`](https://palantir.github.io/tslint/rules/no-empty/) (#2886)
897 -   [enhancement][`prefer-const`](https://palantir.github.io/tslint/rules/prefer-const/): handle destructuring in for-of loop initializer as if `{"destructuring": "all"}` was specified (#2904)
898 -   [enhancement][`no-shadowed-variable`](https://palantir.github.io/tslint/rules/no-shadowed-variable/): added checks for other shadowing declarations, e.g. interfaces, classes, type parameters, imports, etc. (#2598)
899 -   [rule-change][`no-shadowed-variable`](https://palantir.github.io/tslint/rules/no-shadowed-variable/) no longer fails for declarations in the same scope, e.g. `var foo; var foo;`. Use the rule [`no-duplicate-variable`](https://palantir.github.io/tslint/rules/no-duplicate-variable/) to find such errors. (#2598)
900
901 Thanks to our contributors!
902
903 -   Klaus Meinhardt
904 -   Josh Goldberg
905 -   Petr Kosikhin
906 -   Pablo Núñez
907 -   Benny Neugebauer
908 -   Radon Rosborough
909 -   reduckted
910 -   Chris Barr
911 -   Julian Verdurmen
912
913 ## v5.4.3
914
915 ## :hammer_and_wrench: Bugfixes
916
917 -   [bugfix] Fixed regression with empty `--out` file (#2867)
918 -   [bugfix][`unified-signatures`](https://palantir.github.io/tslint/rules/unified-signatures/): Don't suggest to unify rest parameters. (#2874)
919 -   [bugfix][`binary-expression-operand-order`](https://palantir.github.io/tslint/rules/binary-expression-operand-order/): Allow if both sides of the binary expression are literals. (#2873)
920 -   [bugfix] Restore compatibility with typescript@2.1 and 2.2 for [`whitespace`](https://palantir.github.io/tslint/rules/whitespace/), [`space-before-function-paren`](https://palantir.github.io/tslint/rules/space-before-function-paren/) and [`deprecation`](https://palantir.github.io/tslint/rules/deprecation/) (#2893)
921 -   [docs][`no-string-literal`](https://palantir.github.io/tslint/rules/no-string-literal/): Fix documentation (#2875)
922
923 ## v5.4.2
924
925 ## :hammer_and_wrench: Bugfixes
926
927 -   [bugfix] Restored support for multiple `--exclude` options in the CLI (#2855)
928 -   [bugfix] Restored support for `--version` CLI option (#2857)
929
930 ## v5.4.1
931
932 ## :hammer_and_wrench: Bugfixes
933
934 -   [bugfix] Fixed regression in `--exclude` CLI option when using `--project` (#2852)
935
936 ## v5.4.0
937
938 ## :star: Non-breaking API changes
939
940 -   `--type-check` only checks for errors before linting is no longer required to enable rules that use the type checker. You only need to supply `--project` now.
941
942 ## :tada: New rules, options, and fixers
943
944 -   [new-rule][`switch-final-break`](https://palantir.github.io/tslint/rules/switch-final-break/) (#2804)
945 -   [new-rule][`use-default-type-parameter`](https://palantir.github.io/tslint/rules/use-default-type-parameter/) (#2253)
946 -   [new-rule][`binary-expression-operand-order`](https://palantir.github.io/tslint/rules/binary-expression-operand-order/) (#2805)
947 -   [new-rule-option][`ban`](https://palantir.github.io/tslint/rules/ban/) new options format: allows to specify an optional explanation message for function bans, banning nested methods and using a wildcard for object of a method ban (#2547)
948 -   [new-rule-option][`no-duplicate-variable`](https://palantir.github.io/tslint/rules/no-duplicate-variable/) adds `check-parameters` option to check if variable has the same name as a parameter (#2597)
949 -   [new-rule-option][`curly`](https://palantir.github.io/tslint/rules/curly/): "as-needed" option (#2842)
950 -   [new-rule-option][`no-unbound-method`](https://palantir.github.io/tslint/rules/no-unbound-method/) add option `"ignore-static"` (#2751)
951 -   [new-rule-option][`strict-boolean-expressions`](https://palantir.github.io/tslint/rules/strict-boolean-expressions/) adds `allow-boolean-or-undefined` (#2820)
952 -   [new-fixer][`object-literal-shorthand`](https://palantir.github.io/tslint/rules/object-literal-shorthand/) can fix longhand methods (#2558)
953
954 ## :hammer_and_wrench: Bugfixes & enhancements
955
956 -   [bugfix][`prefer-object-spread`](https://palantir.github.io/tslint/rules/prefer-object-spread/) allows constructor, function and method calls and more as first argument to `Object.assign` (#2828)
957 -   [bugfix][`no-unbound-method`](https://palantir.github.io/tslint/rules/no-unbound-method/) walker skips past the parent if it is a cast or parenthesized expression (#2838)
958 -   [bugfix][`object-literal-shorthand`](https://palantir.github.io/tslint/rules/object-literal-shorthand/): fixed suggestion for generator functions (#2558)
959 -   [bugfix] Fixed issue with case sensitivity of [`no-unused-variable`](https://palantir.github.io/tslint/rules/no-unused-variable/) rule on Windows (#2819)
960 -   [bugfix] don't crash `tslint --project` if `allowJs` is set in tsconfig.json (#2823)
961 -   [bugfix][`align`](https://palantir.github.io/tslint/rules/align/) with option `"members"`: check members of class expressions; don't check semicolons in classes (#2668)
962 -   [bugfix][`no-inferred-empty-object-type`](https://palantir.github.io/tslint/rules/no-inferred-empty-object-type/): fix stack overflow (#2762)
963 -   [bugfix][`semicolon`](https://palantir.github.io/tslint/rules/semicolon/): don't warn about unnecesary semicolon when it is actually needed, e.g. when followed by type assertion or template string (#2655)
964 -   [bugfix][`space-before-function-paren`](https://palantir.github.io/tslint/rules/space-before-function-paren/): Ignore async arrow function with no parentheses (#2833)
965 -   [bugfix]: [`no-unsafe-any`](https://palantir.github.io/tslint/rules/no-unsafe-any/): Don't fail on `continue label;` (#2830)
966 -   [bugfix][`no-unbound-method`](https://palantir.github.io/tslint/rules/no-unbound-method/): Allow unbound method to be used as a condition (#2834)
967 -   [bugfix][`no-unsafe-any`](https://palantir.github.io/tslint/rules/no-unsafe-any/): Allow to switch on a value of type `any` (#2836)
968 -   [bugfix][`no-unsafe-any`](https://palantir.github.io/tslint/rules/no-unsafe-any/): Don't mark `declare global {}` as an unsafe any. (#2839)
969 -   [bugfix][`indent`](https://palantir.github.io/tslint/rules/indent/) now checks indentation of expressions inside template strings (#2826)
970 -   [enhancement] `--project` (or `-p`) enables rules that require the type checker. `--type-check` only checks for errors before linting is no longer required (#2773)
971 -   [enhancement][`deprecation`](https://palantir.github.io/tslint/rules/deprecation/): error message includes deprecation text if available (#2748)
972 -   [enhancement][`cyclomatic-complexity`](https://palantir.github.io/tslint/rules/cyclomatic-complexity/): Don't count empty switch case(#2743)
973 -   [enhancement][`strict-boolean-expressions`](https://palantir.github.io/tslint/rules/strict-boolean-expressions/): Allow `any`, and `true` and `false` literal types (#2758)
974 -   [enhancement][`no-floating-promises`](https://palantir.github.io/tslint/rules/no-floating-promises/): Allow 'promise.catch()' (#2774)
975 -   [enhancement][`comment-format`](https://palantir.github.io/tslint/rules/comment-format/) no longer excludes comments with triple slash from linting except `/// <reference path="..."/>` (#2616)
976 -   [enhancement][`prefer-object-spread`](https://palantir.github.io/tslint/rules/prefer-object-spread/): lint more locations where return value is used. (#2828)
977 -   [enhancement][`semicolon`](https://palantir.github.io/tslint/rules/semicolon/): option `"never"` is now spec compliant (#2655)
978 -   [enhancement][`object-literal-shorthand`](https://palantir.github.io/tslint/rules/object-literal-shorthand/) handles async functions correctly (#2558)
979 -   [enhancement] `--test` CLI option: allow passing path to tslint.json (#2784)
980 -   [enhancement] Use commander instead of optimist for CLI arguments (#2689)
981 -   [enhancement][`strict-type-predicates`](https://palantir.github.io/tslint/rules/strict-type-predicates/): warn if strictNullChecks is not enabled (#2786)
982
983 Thanks to our contributors!
984
985 -   Klaus Meinhardt
986 -   Manuel Lopez
987 -   Andy Hanson
988 -   Piotr Tomiak
989
990 ## v5.3.2
991
992 -   [bugfix] Fixes `not a directory` error (#2813)
993
994 ## v5.3.0
995
996 ## This change may require a change to tslint.json
997
998 -   [enhancement][`prefer-switch`](https://palantir.github.io/tslint/rules/prefer-switch/): Change default `min-cases` to 3. (#2669)
999
1000 ## :tada: Features & enhancements
1001
1002 -   [new-cli-option] cli: Add `outputAbsolutePaths` option (#2667)
1003 -   [new-rule][`prefer-object-spread`](https://palantir.github.io/tslint/rules/prefer-object-spread/) (#2624)
1004 -   [new-rule][`encoding`](https://palantir.github.io/tslint/rules/encoding/) (#2368)
1005 -   [new-rule][`prefer-conditional-expression`](https://palantir.github.io/tslint/rules/prefer-conditional-expression/) (#2363)
1006 -   [new-rule-option][`indent`](https://palantir.github.io/tslint/rules/indent/) support indent size (#2723)
1007 -   [new-rule-option][`object-literal-sort-keys`](https://palantir.github.io/tslint/rules/object-literal-sort-keys/) adds `ignore-case` (#2592)
1008 -   [new-rule-option][`quotemark`](https://palantir.github.io/tslint/rules/quotemark/): Add `avoid-template` option (#2766)
1009 -   [new-rule-option][`await-promise`](https://palantir.github.io/tslint/rules/await-promise): What's considered a "Promise" is now configurable. (#2661)
1010 -   [new-fixer][`indent`](https://palantir.github.io/tslint/rules/indent/) (#2723)
1011 -   [new-fixer][`typedef-whitespace`](https://palantir.github.io/tslint/rules/typedef-whitespace/) (#2718)
1012 -   [enhancement] better error messages in [`variable-name`](https://palantir.github.io/tslint/rules/variable-name/) (#2672)
1013 -   [enhancement][`typedef`](https://palantir.github.io/tslint/rules/typedef/): Use name or parameters for error location (#2460)
1014 -   [enhancement][`object-literal-sort-keys`](https://palantir.github.io/tslint/rules/object-literal-sort-keys/): check shorthand properties (#2592)
1015 -   [enhancement][`space-before-function-paren`](https://palantir.github.io/tslint/rules/space-before-function-paren/): Handle `get`/`set` accessor (#2700)
1016 -   [enhancement][`typedef-whitespace`](https://palantir.github.io/tslint/rules/typedef-whitespace/) added checks for arrow function, call and construct signature (#2718)
1017 -   [enhancement][`no-object-literal-type-assertion`](https://palantir.github.io/tslint/rules/no-object-literal-type-assertion/): Allow cast to `any` (#2671)
1018 -   [enhancement] cli: `-p` option handles directories (#2756)
1019 -   [develop] testing rules with type information is enabled when a `tsconfig.json` is found next to `tslint.json` (#2769)
1020 -   [configuration] deprecate mixed case tslint.json (#2713)
1021 -   [bugfix][`return-undefined`](https://palantir.github.io/tslint/rules/return-undefined/): Treat a return type `void | undefined` same as `void` (#2731)
1022 -   [bugfix][`no-unnecessary-initializer`](https://palantir.github.io/tslint/rules/no-unnecessary-initializer/): Handle `BindingElement` anywhere, not just in a `VariableDeclaration`. (#2707)
1023 -   [bugfix][`jsdoc-format`](https://palantir.github.io/tslint/rules/jsdoc-format/): correctly handle alignment in files with BOM (#2619)
1024 -   [bugfix][`jsdoc-format`](https://palantir.github.io/tslint/rules/jsdoc-format/): don't treat empty comments (`/**/`) as jsdoc (#2619)
1025 -   [bugfix][`typedef-whitespace`](https://palantir.github.io/tslint/rules/typedef-whitespace/) don't warn for leading whitespace if token is preceded by line break (#2718)
1026 -   [bugfix] Make "completed-docs" rule respect "public" privacy (or lack thereof) (#2749)
1027 -   [bugfix][`jsdoc-format`](https://palantir.github.io/tslint/rules/jsdoc-format/): fixed error position if line ends with `\r\n` (#2619)
1028 -   [bugfix][`prefer-switch`](https://palantir.github.io/tslint/rules/prefer-switch/): add missing checks for some expressions (#2686)
1029 -   [bugfix][`prefer-template`](https://palantir.github.io/tslint/rules/prefer-template/): Allow `"a" + "b" + "c"`. (#2741)
1030 -   [bugfix][`prefer-const`](https://palantir.github.io/tslint/rules/prefer-const/): fix false positive with variable declared outside of for-of or for-in (#2760)
1031 -   [bugfix] `--project`: fix file matching with relative path to `tsconfig.json` (#2688)
1032 -   [bugfix][`no-default-export`](https://palantir.github.io/tslint/rules/no-default-export/): correctly handle `export default abstract class {...}` (#2630)
1033 -   [bugfix][`no-mergeable-namespace`](https://palantir.github.io/tslint/rules/no-mergeable-namespace/): display correct line in error message (#2656)
1034 -   [bugfix][`object-literal-sort-keys`](https://palantir.github.io/tslint/rules/object-literal-sort-keys/): handle object spread correctly (#2592)
1035 -   [bugfix] Consistently output absolute/relative paths (#2667)
1036 -   [bugfix][`await-promise`](https://palantir.github.io/tslint/rules/await-promise): Consider types derived from a Promise in union types too. (#2661)
1037 -   [bugfix][`no-unsafe-any`](https://palantir.github.io/tslint/rules/no-unsafe-any/): Fix bug where number literal in type position was flagged as an unsafe `any`. (#2712)
1038 -   [api] Deprecate `Lint.Utils.objectify` (#2764)
1039
1040 Thanks to our contributors!
1041
1042 -   Andy Hanson
1043 -   Klaus Meinhardt
1044 -   Martin Probst
1045 -   Filipe Silva
1046 -   walkerburgin
1047 -   René Scheibe
1048
1049 ## v5.2.0
1050
1051 -   [rule-change][`no-console`](https://palantir.github.io/tslint/rules/no-console/) bans all console methods when no methods are specified (#2610)
1052 -   [new-rule][`no-object-literal-type-assertion`](https://palantir.github.io/tslint/rules/no-object-literal-type-assertion/) (#2580)
1053 -   [new-rule][`no-irregular-whitespace`](https://palantir.github.io/tslint/rules/no-irregular-whitespace/) (#2487)
1054 -   [new-rule][`prefer-switch`](https://palantir.github.io/tslint/rules/prefer-switch/) (#2331)
1055 -   [new-rule][`number-literal-format`](https://palantir.github.io/tslint/rules/number-literal-format/) (#2526)
1056 -   [new-rule][`deprecation`](https://palantir.github.io/tslint/rules/deprecation/) (#2395)
1057 -   [new-rule][`no-unnecessary-type-assertion`](https://palantir.github.io/tslint/rules/no-unnecessary-type-assertion/) (#2519)
1058 -   [new-fixer][`interface-over-type-literal`](https://palantir.github.io/tslint/rules/interface-over-type-literal/) (#2617)
1059 -   [new-fixer][`callable-types`](https://palantir.github.io/tslint/rules/callable-types/) (#2552)
1060 -   [new-fixer][`no-string-literal`](https://palantir.github.io/tslint/rules/no-string-literal/) (#2495)
1061 -   [new-fixer][`no-internal-module`](https://palantir.github.io/tslint/rules/no-internal-module/) (#2517)
1062 -   [new-rule-option][`align`](https://palantir.github.io/tslint/rules/align/) rule added `members` option, which checks alignment of methods and properties of classes, objects, interfaces, type literals and object destructuring (#2387)
1063 -   [new-rule-option][`align`](https://palantir.github.io/tslint/rules/align/) rule added `elements` option, which checks alignment of elements in array literals, array destructuring and tuple types (#2387)
1064 -   [new-rule-option][`trailing-comma`](https://palantir.github.io/tslint/rules/trailing-comma/) adds more granular options to specify trailing commas for arrays, objects, functions, type literals, imports, and exports (#2538)
1065 -   [api] Deprecate `ScopeAwareRuleWalker` and `BlockScopeAwareRuleWalker`. (#2561)
1066 -   [develop] added support for [error templates in rule tests](https://palantir.github.io/tslint/develop/testing-rules/) (#2481)
1067 -   [bugfix] Fixes "Severity for rule not found" error (#2516)
1068 -   [bugfix][`no-unused-expression`](https://palantir.github.io/tslint/rules/no-unused-expression/): allow `void(0)` in addition to `void 0` and `void` in expression and statement position (#2645)
1069 -   [bugfix][`align`](https://palantir.github.io/tslint/rules/align/): fix false positive for files with BOM (#2642)
1070 -   [bugfix][`return-undefined`](https://palantir.github.io/tslint/rules/return-undefined/): Handle contextual types with ambiguous signatures; allow `any`; and handle async functions. (#2576)
1071 -   [bugfix][`semicolon`](https://palantir.github.io/tslint/rules/semicolon/): don't mark semicolon as unnecessary when the next statement is on the same line (#2591)
1072 -   [bugfix][`no-internal-module`](https://palantir.github.io/tslint/rules/no-internal-module/): no more false positives for global augmentation (#2517)
1073 -   [bugfix][`no-unnecessary-qualifier`](https://palantir.github.io/tslint/rules/no-unnecessary-qualifier/): no longer breaks when walking a function that references `arguments` (#2555)
1074 -   [bugfix][`prefer-const`](https://palantir.github.io/tslint/rules/prefer-const/) no longer shows warnings on ambient declarations (#2391)
1075 -   [bugfix][`callable-types`](https://palantir.github.io/tslint/rules/callable-types/): suggest correct fix for interfaces with type arguments (#2552)
1076 -   [bugfix][`quotemark`](https://palantir.github.io/tslint/rules/quotemark/): fix regression with jsx attributes (#2605)
1077 -   [bugfix][`adjacent-overload-signatures`](https://palantir.github.io/tslint/rules/adjacent-overload-signatures/) handles functions ending in semicolon (#2412)
1078 -   [bugfix][`object-literal-key-quotes`](https://palantir.github.io/tslint/rules/object-literal-key-quotes/): correctly stringify numbers when fixing (#2515)
1079 -   [bugfix][`object-literal-key-quotes`](https://palantir.github.io/tslint/rules/object-literal-key-quotes/): does no longer require quotes for property names containing digits (#2515)
1080 -   [enhancement] Failures in extended config files now indicate which file (#2588)
1081 -   [enhancement][`align`](https://palantir.github.io/tslint/rules/align/): Don't report 'statements are not aligned' for empty statements (#2653)
1082 -   [enhancement][`class-name`](https://palantir.github.io/tslint/rules/class-name/) now also checks class expressions (#2553)
1083 -   [enhancement] `optionExamples`: Allow to use an options array directly instead of a string representation. (#2527)
1084 -   [enhancement] `rulesDirectory` can now be resolved with Nodes resolve logic, if the directory contains an `index.js` (#2163) (#2358)
1085 -   [enhancement][`no-unused-expression`](https://palantir.github.io/tslint/rules/no-unused-expression/): narrow error location for comma separated expressions and conditional expressions (#2645)
1086 -   [enhancement][`no-string-literal`](https://palantir.github.io/tslint/rules/no-string-literal/) now handles escaped strings (#2495)
1087 -   [enhancement][`no-unnecessary-callback-wrapper`](https://palantir.github.io/tslint/rules/no-unnecessary-callback-wrapper/): Allow `x => x(x)` (#2524)
1088 -   [enhancement][`no-var-keyword`](https://palantir.github.io/tslint/rules/no-var-keyword/): Allow global var declarations (#2513)
1089
1090 Thanks to our contributors!
1091
1092 -   Andy Hanson
1093 -   Alex Eagle
1094 -   Donald Pipowitch
1095 -   Klaus Meinhardt
1096 -   Gord P
1097 -   Andy
1098 -   Quentin
1099 -   Mitchell Wills
1100 -   Vito
1101 -   CSchulz
1102 -   Josh Goldberg
1103 -   Brian Olore
1104 -   Manuel Lopez
1105 -   James Clark
1106
1107 ## v5.1.0
1108
1109 -   [new-rule] `no-invalid-template-strings` (#2332)
1110 -   [new-rule] `no-sparse-arrays` (#2407)
1111 -   [new-rule-option] `no-void-expression`: adds `ignore-arrow-function-shorthand` (#2445)
1112 -   [api] `tslint:all` configuration (#2417)
1113 -   [bugfix] In tslint:recommended move `no-reference-import` from `jsRules` to `rules` (#2441)
1114 -   [bugfix] `no-unnecessary-callback-wrapper`: only check if callback is identifier, allow all other expressions (#2510)
1115 -   [bugfix] `member-access`: Skip index signature, it can not have an access modifier (#2437)
1116 -   [bugfix] `restrict-plus-operands` fixes regression where every assignment and comparison was checked (#2454)
1117 -   [bugfix] `no-unnecessary-callback-wrapper`: allow async wrapper function (#2510)
1118 -   [bugfix] `prefer-for-of`: No error if `delete` is used (#2458)
1119 -   [bugfix] `radix`: don't warn for missing radix on method calls (#2352)
1120 -   [bugfix] `no-use-before-declare`: Handle symbol with empty declarations list. (#2436)
1121 -   [bugfix] `strict-type-predicates`: Check for construct signatures in `isFunction`. (#2479)
1122 -   [enhancement] `strict-boolean-expressions`: When `--strictNullChecks` is turned off, `allow-null-union` and `allow-undefined-union` turn off "always truthy" errors. (#2373)
1123 -   [enhancement] `radix`: added check for global.parseInt and window.parseInt (#2352)
1124 -   [enhancement] `arrow-return-shorthand`: Improve failure message when return expression is an object literal (#2466)
1125
1126 Thanks to our contributors!
1127
1128 -   Andy Hanson
1129 -   bumbleblym
1130 -   Klaus Meinhardt
1131 -   Jonas Kello
1132 -   Minko Gechev
1133 -   Donald Pipowitch
1134
1135 ## v5.0.0
1136
1137 ## :fire: Breaking changes
1138
1139 -   Minimum version of TypeScript version is now 2.1.0 (#2425)
1140 -   The severity level of rules are now configurable and defaults to severity "error". This affects the output of formatters:
1141     -   [formatter] `msbuild` was outputting all failures as "warning".
1142     -   [formatter] `pmd` was outputting all failures as priority 1. Now, it uses _priority 3_ for "error" (default) and _priority 4_ for "warning"
1143 -   [formatter] `json` changed the `fix` property to now contain either one replacement or an array of replacements (#2403)
1144 -   `tslint:recommended` configuration updated with `tslint:latest` rules & options (#2424)
1145 -   Removed `no-unused-new` rule, with logic moved into `no-unused-expression` (#2269)
1146 -   `no-trailing-whitespace` now checks template strings by default. Use the new options `ignore-template-strings` to restore the old behavior. (#2359)
1147
1148 ### API breaks for custom rules
1149
1150 -   Removed method `skip` from `RuleWalker` (#2313)
1151 -   Removed all use of the TypeScript Language Service, use only Program APIs instead (#2235)
1152
1153     -   This means that some rules that previously worked without the type checker _now require it_. This includes:
1154
1155         -   `no-unused-variable`
1156         -   `no-use-before-declare`
1157
1158     -   This breaks custom rule compilation. If your rule was not using the `ts.LanguageService` APIs, the migration is quite simple:
1159
1160     ```diff
1161     - public applyWithProgram(srcFile: ts.SourceFile, langSvc: ts.LanguageService): Lint.RuleFailure[] {
1162     -     return this.applyWithWalker(new Walker(srcFile, this.getOptions(), langSvc.getProgram()));
1163     + public applyWithProgram(srcFile: ts.SourceFile, program: ts.Program): Lint.RuleFailure[] {
1164     +     return this.applyWithWalker(new Walker(srcFile, this.getOptions(), program));
1165     ```
1166
1167     -   N.B. If you are refactoring your custom rules, consider [these performance tips for writing custom rules](https://palantir.github.io/tslint/develop/custom-rules/performance.html).
1168
1169 -   Removed `createFix`. Replacements should be passed directly into addFailure. (#2403)
1170 -   Removed deprecated `scanAllTokens` and `skippableTokenAwareRuleWalker` (#2370)
1171
1172 ## :tada: Notable features & enhancements
1173
1174 -   [feature] The severity level of rules are now individually configurable. Default severity can also be configured. (#629, #345)
1175
1176     -   Valid values for `severity`: `default` | `error | warn | warning | none | off`
1177     -   Valid values for `defaultSeverity`: `error | warn | warning | none | off`
1178     -   Old style:
1179
1180     ```json
1181     {
1182         "extends": "tslint:latest",
1183         "rules": {
1184             "callable-types": true,
1185             "max-line-length": [true, 140]
1186         }
1187     }
1188     ```
1189
1190     -   New style (in this example, `callable-types` outputs errors and `max-line-length` outputs warnings):
1191
1192     ```json
1193     {
1194         "extends": "tslint:latest",
1195         "defaultSeverity": "error",
1196         "rules": {
1197             "callable-types": true,
1198             "max-line-length": {
1199                 "options": 140,
1200                 "severity": "warning"
1201             }
1202         }
1203     }
1204     ```
1205
1206 -   [new-rule] `prefer-template` (#2243)
1207 -   [new-rule] `return-undefined` (#2251)
1208 -   [new-rule] `no-reference-import` (#2273)
1209 -   [new-rule] `no-unnecessary-callback-wrapper` (#2249)
1210 -   [new-fixer] `linebreak-style` (#2394)
1211 -   [new-fixer] `eofline` (#2393)
1212
1213 ## Full list of changes
1214
1215 -   [api] Added class `OptionallyTypedRule`, which allows rule authors to write a rule that applies when typing is either enabled or disabled (#2300)
1216 -   [bugfix] `prefer-function-over-method` now ignores abstract methods (#2307)
1217 -   [bugfix] `arrow-parens` with option `ban-single-arg-parens` now correctly handles functions with return type annotation (#2265)
1218 -   [bugfix] `prefer-function-over-method` exclude overload signatures (#2315)
1219 -   [bugfix] `use-isnan` now applies only to comparison operators (#2317)
1220 -   [bugfix] `file-header-rule` now handles single-line comments correctly (#2320)
1221 -   [bugfix] `newline-before-return`: fix handling of blank lines between comments (#2321)
1222 -   [bugfix] `trailing-comma` No longer enforce trailing commas in type parameters and tuple types (#2236)
1223 -   [bugfix] `align` don't fix if it would remove code (#2379)
1224 -   [bugfix] `unified-signatures` now recognizes rest parameters (#2342)
1225 -   [bugfix] `no-inferrable-types` don't warn for inferrable type on readonly property (#2312)
1226 -   [bugfix] `trailing-comma` no longer crashes on new without parentheses (e.g. `new Foo`) (#2389)
1227 -   [bugfix] `semicolon` Ignore comments when checking for unnecessary semicolon (#2240)
1228 -   [bugfix] `semicolon` Don't report unnecessary semicolon when followed by regex literal (#2240)
1229 -   [bugfix] CLI: exit with 0 on type check errors when `--force` is specified (#2322)
1230 -   [bugfix] CLI: `--test` now correctly strips single quotes from patterns on windows (#2322)
1231 -   [bugfix] `prefer-const` only fix initialized variables (#2219)
1232 -   [bugfix] `prefer-const` correctly handle variables shadowed by parameters and catched exceptions (#2219)
1233 -   [bugfix] `prefer-const` don't warn if one variable in a for loop initializer can not be const (#2219)
1234 -   [bugfix] `prefer-const` handle more cases in destructuring (#2219)
1235 -   [bugfix] `no-unused-expression` allow comma separated assignments (#2269)
1236 -   [chore] removed update-notifier dependency (#2262)
1237 -   [development] allow rule tests to specify version requirement for typescript (#2323)
1238 -   [enhancement] `ignore-properties` option of `no-inferrable-types` now also ignores parameter properties (#2312)
1239 -   [enhancement] `unified-signatures` now displays line number of the overload to unify if there are more than 2 overloads (#2270)
1240 -   [enhancement] `trailing-comma` New checks for CallSignature and NamedExports (#2236)
1241 -   [enhancement] `semicolon` New check for export statements, function overloads and shorthand module declaration (#2240)
1242 -   [enhancement] `semicolon` Report unnecessary semicolons in classes and in statement position (for option "always" too) (#2240)
1243 -   [enhancement] `semicolon` check for semicolon after method overload (#2240)
1244 -   [enhancement] `array-type` now consider `object`, `undefined` and `never` as simple types, allowing `object`, `undefined[]` and `never[]` (#1843)(#2353)
1245 -   [enhancement] `align` check statement alignment for all blocks (#2379)
1246 -   [enhancement] `align`check parameter alignment for all signatures (#2379)
1247 -   [enhancement] `--test` can handle multiple paths at once (#2322)
1248 -   [enhancement] `only-arrow-functions` allow functions that use `this` in the body (#2229)
1249 -   [enhancement] CLI: print error when `--type-check` is used without `--project` (#2322)
1250 -   [enhancement] CLI: don't print stack trace on type check error (#2322)
1251 -   [enhancement] CLI: added `-p` as shorthand for `--project` to be consistent with `tsc` (#2322)
1252 -   [enhancement] `prefer-const` show warnings for `var` (#2219)
1253 -   [enhancement] `quotemark` fixer unescapes original quotemark (e.g. `'\''` -> `"'"`) (#2359)
1254 -   [enhancement] `no-unused-expression` allow indirect eval `(0, eval)("");` (#2269)
1255 -   [enhancement] `no-unused-expression` checking for unused new can now use option `allow-fast-null-checks` (#2269)
1256 -   [enhancement] `no-unused-expression` find unused comma separated expressions in all locations of the code (#2269)
1257 -   [enhancement] `no-unused-expression` find unused expressions inside void expression (#2269)
1258 -   [new-config-option] Adds `defaultSeverity` with options `error`, `warning`, and `off`. (#2416)
1259 -   [new-formatter] TAP formatter (#2325)
1260 -   [new-rule-option] `no-unused-expression` adds option `allow-tagged-template` to allow tagged templates for side effects (#2269)
1261 -   [new-rule-option] `no-unused-expression` adds option `allow-new` to allow `new` without using the new object (#2269)
1262 -   [new-rule-option] `member-access` adds `no-public` option (#2247)
1263 -   [new-rule-option] `curly` added option `ignore-same-line` (#2334)
1264 -   [new-rule-option] `{destructuring: "all"}` to only warn if all variables in a destructuring can be const (#2219)
1265 -   [new-rule-option] added `ignore-template-strings` to `no-trailing-whitespace` (#2359)
1266 -   [rule-update] `array-type` now consider `undefined` and `never` as simple types, allowing `undefined[]` and `never[]` (#1843)
1267
1268 Thanks to our contributors!
1269
1270 -   Brian Olore
1271 -   Andy Hanson
1272 -   @andy-ms
1273 -   Chris Barr
1274 -   Klaus Meinhardt
1275 -   @bumbleblym
1276 -   Josh Goldberg
1277 -   James Clark
1278 -   @vilic
1279 -   Aleksandr Filatov
1280 -   Matt Banz
1281 -   Karol Janyst
1282 -   Mike Deverell
1283 -   Alexander James Phillips
1284 -   Irfan Hudda
1285
1286 ## v4.5.1
1287
1288 -   [enhancement] Updated recommended rules to include `ban-types` and `no-duplicate-super` (#2271)
1289 -   [bugfix] `object-literal-key-quotes` handle negative number property name (#2273)
1290
1291 ## v4.5.0
1292
1293 -   [new-rule] `no-import-side-effect` (#2155)
1294 -   [new-rule] `match-default-export-name` (#2117)
1295 -   [new-rule] `no-non-null-assertion` (#2221)
1296 -   [new-rule] `ban-types` (#2175)
1297 -   [new-rule] `no-duplicate-super` (#2038)
1298 -   [new-rule] `newline-before-return` (#2173)
1299 -   [new-rule-option] `completed-docs` adds options for location, type, and privacy. Also adds interfaces, enums, types (#2095)
1300 -   [new-rule-option] `no-inferrable-types` adds option `ignore-properties` (#2178)
1301 -   [new-rule-option] `typedef` adds options `object-destructuring` and `array-destructuring` options (#2146)
1302 -   [new-rule-option] `member-ordering` adds option `alphabetize` (#2101)
1303 -   [new-rule-option] `no-trailing-whitespace` adds option `ignore-jsdoc` (#2177)
1304 -   [new-rule-option] `no-trailing-whitespace` adds option `ignore-comments` option (#2153)
1305 -   [new-fixer] `no-inferrable-types` automatically remove inferrable type annotations (#2178)
1306 -   [new-fixer] `no-any` (#2165)
1307 -   [new-fixer] `noConsecutiveBlankLines` (#2201)
1308 -   [new-fixer] `object-literal-shorthand` (#2165)
1309 -   [bugfix] `no-switch-case-fallthrough` handle break, throw, continue and return nested in block, if-else and switch (#2218)
1310 -   [bugfix] `no-switch-case-fallthrough` allow empty case clauses before default clause (#2218)
1311 -   [bugfix] `no-mergeable-namespace` ignore property types that can't be merged (#2105)
1312 -   [bugfix] `object-literal-key-quotes` no need to quote a float if its .toString() is the same. (#2144)
1313 -   [bugfix] `no-consecutive-blank-lines` Correctly apply fixes at EOF (#2239)
1314 -   [bugfix]: Fixes installation issue with node 7.5 (#2212)
1315 -   [bugfix]: `quotemark` now handles escaped chars (#2224)
1316 -   [enhancement] Don't exit when a rule requires type checking but type checking is not enabled (#2188)
1317 -   [enhancement] `no-switch-case-fallthrough` allow single line comment `// falls through` (#2218)
1318 -   [enhancement] `no-unbound-method` allows property access and binary expressions (#2143)
1319 -   [api] Introduce `AbstractWalker` for performance (#2093)
1320     -   see [performance](https://palantir.github.io/tslint/develop/custom-rules/performance.html) and [migration](https://palantir.github.io/tslint/develop/custom-rules/migration.html) docs
1321
1322 Thanks to our contributors!
1323
1324 -   Andy Hanson
1325 -   Stefan Reichel
1326 -   Shlomi Assaf
1327 -   Josh Goldberg
1328 -   Minko Gechev
1329 -   Irfan Hudda
1330 -   Klaus Meinhardt
1331 -   Martin Probst
1332 -   Naoto Usuyama
1333 -   Caleb Eggensperger
1334 -   Arturs Vonda
1335 -   Joscha Feth
1336 -   Moritz
1337 -   Alexander Rusakov
1338 -   Alex Ryan
1339 -   Andy
1340 -   Yuichi Nukiyama
1341
1342 ## v4.4.2
1343
1344 -   [bugfix] `whitespace` rule caused false positive on EOF (#2131)
1345 -   [bugfix] WebStorm fails because `json` formatter parameter has extra space (#2132)
1346
1347 ## v4.4.1
1348
1349 -   [bugfix] errant space in recommended ruleset (couldn't find `no-misused-new`)
1350
1351 ## v4.4.0
1352
1353 -   [new-rule] `arrow-return-shorthand` (#1972)
1354 -   [new-rule] `no-unbound-method` (#2089)
1355 -   [new-rule] `no-boolean-literal-compare` (#2013)
1356 -   [new-rule] `no-unsafe-any` (#2047)
1357 -   [new-rule] `no-unnecessary-qualifier` (#2008)
1358 -   [new-rule] `no-unnecessary-initializer` (#2106)
1359 -   [new-rule] `await-promise` (#2102)
1360 -   [new-rule] `no-floating-promises` (#1632)
1361 -   [new-rule] `strict-type-predicates` (#2046)
1362 -   [new-rule] `no-misused-new` (#1963)
1363 -   [new-rule] `prefer-method-signature` (#2028)
1364 -   [new-rule] `prefer-function-over-method` (#2037)
1365 -   [new-rule-option] `allow-fast-null-checks` added to `no-unused-expression` (#1638)
1366 -   [new-rule-option] `comment-format-rule` adds `ignore-words` and `ignore-pattern` options (#1757)
1367 -   [new-rule-option] `whitespace` adds `check-preblock` option (#2002)
1368 -   [new-rule-option] `strict-boolean-expressions` adds `allow-null-union`, `allow-undefined-union`, `allow-string`, and `allow-number` and (#2033)
1369 -   [new-fixer] `align` (#2097)
1370 -   [new-fixer] `no-trailing-whitespace` (#2060)
1371 -   [bugfix] `no-magic-numbers` false positive on default parameter values (#2004)
1372 -   [bugfix] `no-empty-interface` allow empty interface with 2 or more parents (#2070)
1373 -   [bugfix] `no-trailing-whitespace` fixed for comments and EOF (#2060)
1374 -   [bugfix] `no-empty` no longer fails for private or protected constructor (#1976)
1375 -   [bugfix] `tslint:disable`/`tslint-enable` now handles multiple rules and fixes what code is enabled/disabled (#2061)
1376 -   [bugfix] `no-inferrable-types` now validates property declarations (#2081)
1377 -   [bugfix] `unified-signatures` false positive (#2016)
1378 -   [bugfix] `whitespace` finds all whitespace errors in JsxExpressions and TemplateExpressions (#2036)
1379 -   [bugfix] `comment-format` no more false positives in JsxText (#2036)
1380 -   [enhancement] `--test` option now accepts glob (#2079)
1381
1382 Thanks to our contributors!
1383
1384 -   Alexander Rusakov
1385 -   Andrii Dieiev
1386 -   @andy-ms
1387 -   Andy Hanson
1388 -   Josh Goldberg
1389 -   Kei Son
1390 -   Klaus Meinhardt
1391 -   Krati Ahuja
1392 -   Martin Probst
1393 -   Mohsen Azimi
1394 -   Romke van der Meulen
1395 -   cameron-mcateer
1396
1397 ## v4.3.1
1398
1399 -   [bugfix] Fix back-compat break. Allow formattersDirectory === null (#1997)
1400
1401 ## v4.3.0
1402
1403 -   **Enabled additional rules in `tslint:latest` configuration** (#1981)
1404 -   [new-rule] `space-before-function-paren` (#1897)
1405 -   [new-rule] `typeof-compare` (#1927)
1406 -   [new-rule] `import-spacing` (#1935)
1407 -   [new-rule] `unified-signatures` (#1944)
1408 -   [new-fixer] `object-literal-key-quotes` (#1953)
1409 -   [new-fixer] `no-angle-bracket-type-assertion` (#1979)
1410 -   [bugfix] `adjacent-overload-signature` now handles static/computed function names (#1831)
1411 -   [bugfix] `file-header` now handles files with only comments (#1913)
1412 -   [bugfix] `no-consecutive-blank-lines` now allows blank lines in template strings (#1886)
1413 -   [bugfix] `object-literal-key-quotes` no longer throws exception when using rest operator (#1916)
1414 -   [bugfix] `restrict-plus-operands` no longer shows false positive in ternary operation (#1925)
1415 -   [bugfix] `prefer-for-of` now handles nested `for` loops with reused iterator (#1926)
1416 -   [bugfix] Exit gracefully when `tsconfig.json` passed as `--project` argument doens't have files (#1933)
1417 -   [bugfix] `object-literal-key-quotes` now handles shorthand and spread properties (#1945)
1418 -   [bugfix] `arrow-parens` Allow binding patterns `([x, y]) => ...` and `({x, y}) => ...` to have parens (#1958)
1419 -   [bugfix] `semicolon` fixer now handles comma separator in interfaces and indicates failure when commas are using in interfaces (#1856)
1420 -   [bugfix] `only-arrow-functions` option `allow-named-functions` now allows function declarations (#1961)
1421 -   [bugfix] `prefer-for-of` no longer shows false positive when array is in parentheses (#1986)
1422 -   [bugfix] `prefer-const` now works for TypeScript versions < 2.1.0 (#1989)
1423 -   [enhancement] `member-access` narrow location of error (#1964)
1424
1425 Thanks to our contributors!
1426
1427 -   Andrii Dieiev
1428 -   @andy-ms
1429 -   Andy Hanson
1430 -   Josh Goldberg
1431 -   Klaus Meinhardt
1432 -   Linda_pp
1433 -   Mohsen Azimi
1434 -   Victor Grigoriu
1435 -   Yuichi Nukiyama
1436 -   cameron-mcateer
1437
1438 ## v4.2.0
1439
1440 -   [new-rule] `no-string-throw` (#1878)
1441 -   [new-rule] `no-empty-interface` (#1889)
1442 -   [new-rule] `interface-over-type-literal` (#1890)
1443 -   [new-rule] `callable-types` (#1891)
1444 -   [new-rule] `no-void-expression` (#1903)
1445 -   [new-rule-option] `ban-single-arg-parens` added to `arrow-parens` (#1893)
1446 -   [bugfix] `prefer-const` handles destructuring arrays (#1894), destructuring objects (#1906), and forward references (#1908)
1447 -   [bugfix] Don't error for misplaced braces for 'else' in `one-line` rule (#1866)
1448 -   [bugfix] `no-shadowed-variable` now identifies shadowed `for` iterator (#1816)
1449 -   [bugfix] `object-literal-key-quotes` now includes function names (#1874)
1450 -   [bugfix] error when EOF comes after `disable-next-line` comment (#1902)
1451
1452 Thanks to our contributors!
1453
1454 -   Andrew Scott
1455 -   @andy-ms
1456 -   Andy Hanson
1457 -   James Booth
1458 -   Klaus Meinhardt
1459 -   Vladimir Matveev
1460
1461 ## v4.1.1
1462
1463 -   [bugfix] `typedef` rule was showing false positive for `catch` clause (#1887)
1464
1465 ## v4.1.0
1466
1467 -   [new-rule] `prefer-const` (#1801)
1468 -   [new-rule] `strict-boolean-expressions` (#1820)
1469 -   [new-rule] `no-magic-numbers` (#1799)
1470 -   [new-rule] `import-blacklist` (#1841)
1471 -   [new-rule] `promise-functions-async` (#1779)
1472 -   [new-rule] `no-inferred-empty-object-type`: a type must be specified when using a generic class/function/etc (#1821)
1473 -   [new-rule-option] `allow-named-functions` added to `only-arrow-functions` (#1857)
1474 -   [new-fixer] `prefer-const` (#1801)
1475 -   [new-fixer] `quotemark` (#1790)
1476 -   [new-formatter] `code-frame` formatter shows you the error in context (#1819)
1477 -   [enhancement] `no-internal-module` failures highlight less text (#1781)
1478 -   [enhancement] Avoid auto-fixing errors that would result in compilation errors for rules that use type-check (#1608)
1479 -   [rule-change] `only-arrow-functions` will allow functions with a `this` parameter (#1597)
1480 -   [bugfix] `no-use-before-declare` false positive on named import (#1620)
1481 -   [bugfix] `prefer-for-of` was showing false positive when the element is assigned (#1813)
1482 -   [bugfix] The command line argument `type-check` was swallowing the next argument (#1783)
1483 -   [bugfix] `tslint:disable-line` was re-enabling `tslint:disable` (#1634)
1484 -   [bugfix] `adjacent-overload-signatures` did not work for constructors (#1800)
1485 -   [bugfix] `checkstyle` formatter was reporting errors under one file (#1811)
1486 -   [bugfix] `trailing-comma` was applied to parameter lists (#1775)
1487 -   [api] CLI logic moved into API friendly class (#1688)
1488
1489 Thanks to our contributors!
1490
1491 -   Alex Eagle
1492 -   Andrii Dieiev
1493 -   Andy Hanson
1494 -   Art Chaidarun
1495 -   Donald Pipowitch
1496 -   Feisal Ahmad
1497 -   Josh Goldberg
1498 -   Klaus Meinhardt
1499 -   Maciej Sypień
1500 -   Mohsen Azimi
1501 -   Ryan Lester
1502 -   Simon Schick
1503 -   Subhash Sharma
1504 -   Timothy Slatcher
1505 -   Yaroslav Admin
1506 -   Yuichi Nukiyama
1507 -   tdsmithATabc
1508 -   @wmrowan
1509
1510 ## v4.0.2
1511
1512 -   [enhancement] Don't exit when a rule can't be found. Print as a warning instead (#1771)
1513 -   [api-change] Allow 3rd party apps to see exception when the config is invalid (#1764)
1514 -   [bugfix] Don't flag a property named as empty string as not needing quotes in an object literal (#1762)
1515 -   [bugfix] Report correct number of fixes done by --fix (#1767)
1516 -   [bugfix] Fix false positives and exceptions in `prefer-for-of` (#1758)
1517 -   [bugfix] Fix `adjacent-overload-signatures` false positive when a static function has the same name (#1772)
1518
1519 Thanks to our contributors!
1520
1521 -   @gustavderdrache
1522
1523 ## v4.0.1
1524
1525 -   [bugfix] Removed `no-unused-variable` rule from recommended config, as it was causing spurious deprecation warnings.
1526
1527 ## v4.0.0-dev.2
1528
1529 -   Include latest v4.0.0 changes
1530
1531 ## v4.0.0
1532
1533 -   **BREAKING CHANGES**
1534     -   [api-change] Minor changes to the library API. See this PR for changes and upgrade instructions (#1720)
1535     -   [removed-rule] Removed `no-unreachable` rule; covered by compiler (#661)
1536     -   [enhancement] Changed order of applied configuration files for the `extends` array to make it more intuitive. (#1503)
1537     -   [enhancement] Changed TypeScript peer dependency to >= 2.0.0 (#1710)
1538 -   [new-rule] `completed-docs` rule added (#1644)
1539 -   [new-fixer] `ordered-imports` auto fixed (#1640)
1540 -   [new-fixer] `arrow-parens` auto fixed (#1731)
1541 -   [rule-change] `indent` rule now ignores template strings (#1611)
1542 -   [new-rule-option] `object-literal-key-quotes` adds the options `consistent` and `consistent-as-needed` (#1733)
1543 -   [enhancement] `--fix` option added to automatically fix selected rules (#1697)
1544 -   [enhancement] Updated recommend rules (#1717)
1545 -   [enhancement] `adjacent-overload-signatures` now works with classes, source files, modules, and namespaces (#1707)
1546 -   [enhancement] Users are notified if they are using an old TSLint version (#1696)
1547 -   [bugfix] Lint `.jsx` files if `jsRules` are configured (#1714)
1548 -   [bugfix] Command line glob patterns now handle single quotes (#1679)
1549
1550 Thanks to our contributors!
1551
1552 -   Andrii Dieiev
1553 -   Andy
1554 -   Chris Barr
1555 -   Davie Schoots
1556 -   Jordan Hawker
1557 -   Josh Goldberg
1558 -   Stepan Riha
1559 -   Yuichi Nukiyama
1560
1561 ## v4.0.0-dev.1
1562
1563 -   **BREAKING CHANGES**
1564     -   [enhancement] The `semicolon` rule now disallows semicolons in multi-line bound class methods
1565         (to get the v3 behavior, use the `ignore-bound-class-methods` option) (#1643)
1566     -   [removed-rule] Removed `use-strict` rule (#678)
1567     -   [removed-rule] Removed `label-undefined` rule; covered by compiler (#1614)
1568     -   [enhancement] Renamed `no-constructor-vars` to `no-parameter-properties` (#1296)
1569     -   [rule-change] The `orderedImports` rule now sorts relative modules below non-relative modules (#1640)
1570 -   **Deprecated**
1571     -   [deprecated] `no-unused-variable` rule. This is checked by the TypeScript v2 compiler using the flags [`--noUnusedParameters` and `--noUnusedLocals`](https://github.com/Microsoft/TypeScript/wiki/What%27s-new-in-TypeScript#flag-unused-declarations-with---nounusedparameters-and---nounusedlocals). (#1481)
1572 -   [enhancement] Lint .js files (#1515)
1573 -   [new-fixer] `no-var-keyword` replaces `var` with `let` (#1547)
1574 -   [new-fixer] `trailing-comma` auto fixed (#1546)
1575 -   [new-fixer] `no-unused-variable` auto fixed for imports (#1568)
1576 -   [new-fixer] `semicolon` auto fixed (#1423)
1577 -   [new-rule] `max-classes-per-file` rule added (#1666)
1578 -   [new-rule-option] `no-consecutive-blank-lines` rule now accepts a number value indicating max blank lines (#1650)
1579 -   [new-rule-option] `ordered-imports` rule option `import-sources-order` accepts value `any` (#1602)
1580 -   [bugfix] `no-empty` rule fixed when parameter has readonly modifier
1581 -   [bugfix] `no-namespace` rule: do not flag nested or .d.ts namespaces (#1571)
1582
1583 Thanks to our contributors!
1584
1585 -   Alex Eagle
1586 -   Andrii Dieiev
1587 -   Ben Coveney
1588 -   Boris Aranovich
1589 -   Chris Barr
1590 -   Cyril Gandon
1591 -   Evgeniy Zhukovskiy
1592 -   Jay Anslow
1593 -   Kunal Marwaha
1594 -   Martin Probst
1595 -   Mingye Wang
1596 -   Raghav Katyal
1597 -   Sean Dawson
1598 -   Yuichi Nukiyama
1599 -   jakpaw
1600
1601 ## v4.0.0-dev.0
1602
1603 -   **BREAKING CHANGES**
1604     -   [enhancement] Drop support for configuration via package.json (#1579)
1605     -   [removed-rule] Removed `no-duplicate-key` rule; covered by compiler (#1109)
1606     -   [enhancement] Call formatter once for all file results. Format output may be different (#656)
1607     -   [rule-change] `trailing-comma` supports function declarations, expressions, and types (#1486)
1608     -   [rule-change] `object-literal-sort-keys` now sorts quoted keys (#1529)
1609     -   [rule-change] `semicolon` now processes type aliases (#1475)
1610     -   [rule-change] `no-var-keyword` now rejects `export var` statements (#1256)
1611     -   [rule-change] `semicolon` now requires semicolon for function declaration with no body (#1447)
1612 -   [new-formatter] `fileslist` formatter writes a list of files with errors without position or error type specifics (#1558)
1613 -   [new-rule] `cyclomaticComplexity`, enforces a threshold of cyclomatic complexity.] (#1464)
1614 -   [new-rule] `prefer-for-of`, which errors when `for(var x of y)` can be used instead of `for(var i = 0; i < y.length; i++)` (#1335)
1615 -   [new-rule] `array-type`, which can require using either `T[]' or 'Array<T>' for arrays (#1498)
1616 -   [rule-change] `object-literal-sort-keys` checks multiline objects only (#1642)
1617 -   [rule-change] `ban` rule now can ban global functions (#327)
1618 -   [bugfix] always write lint result, even if using formatter (#1353)
1619 -   [bugfix] npm run test:bin fails on Windows (#1635)
1620 -   [bugfix] Don't enforce trailing spaces on newlines in typedef-whitespace rule (#1531)
1621 -   [bugfix] `jsdoc` rule should not match arbitrary comments (#1543)
1622 -   [bugfix] `one-line` rule errors when declaring wildcard ambient modules (#1425)
1623
1624 Thanks to our contributors!
1625
1626 -   Alex Eagle
1627 -   Andrii Dieiev
1628 -   Andy Hanson
1629 -   Ben Coveney
1630 -   Boris Aranovich
1631 -   Chris Barr
1632 -   Christian Dreher
1633 -   Claas Augner
1634 -   Josh Goldberg
1635 -   Martin Probst
1636 -   Mike Deverell
1637 -   Nina Hartmann
1638 -   Satoshi Amemiya
1639 -   Scott Wu
1640 -   Steve Van Opstal
1641 -   Umar Bolatov
1642 -   Vladimir Matveev
1643 -   Yui
1644
1645 ## v3.15.1
1646
1647 -   Enabled additional rules in `tslint:latest` configuration (#1506)
1648
1649 ## v3.15.0
1650
1651 -   Stable release containing changes from the last dev release (v3.15.0-dev.0)
1652
1653 ## v3.15.0-dev.0
1654
1655 -   [enhancement] Rules can automatically fix errors (#1423)
1656 -   [enhancement] Better error messages for invalid source files (#1480)
1657 -   [new-rule] `adjacent-overload-signatures` rule (#1426)
1658 -   [new-rule] `file-header` rule (#1441)
1659 -   [new-rule] `object-literal-shorthand` rule (#1488)
1660 -   [new-rule-option] `allow-declarations` option for `only-arrow-functions` rule (#1452)
1661 -   [new-rule-option] `import-sources-order` option for `ordered-imports` rule (#1466)
1662 -   [bugfix] `arrow-parens` rule handles async and generics (#1446, #1479)
1663 -   [bugfix] `comment-format` rule ignores tslint control comments (#1473)
1664 -   [bugfix] Fix `no-shadowed-variable` rule false positives (#1482)
1665
1666 Thanks to our contributors!
1667
1668 -   @apacala
1669 -   @danvk
1670 -   @DovydasNavickas
1671 -   @glen-84
1672 -   @IllusionMH
1673 -   @JoshuaKGoldberg
1674 -   @markwongsk
1675 -   @rakatyal
1676 -   @rhysd
1677 -   @ScottSWu
1678 -   @YuichiNukiyama
1679
1680 ## v3.14.0
1681
1682 -   Stable release containing changes from the last dev releases (v3.14.0-dev.0, v3.14.0-dev.1)
1683
1684 ## v3.14.0-dev.1
1685
1686 -   [new-rule] `arrow-parens` rule (#777)
1687 -   [new-rule] `max-file-line-count` rule (#1360)
1688 -   [new-rule] `no-unsafe-finally` rule (#1349)
1689 -   [new-rule] `no-for-in-array` rule (#1380)
1690 -   [new-rule] `object-literal-key-quotes` rule (#1364)
1691 -   [enhancement] Better `ban` rule failure messages (#1385)
1692 -   [enhancement] New stylish formatter (#1406)
1693
1694 Thanks to our contributors!
1695
1696 -   @chrismbarr
1697 -   @danvk
1698 -   @gjuchault
1699 -   @lowkay
1700 -   @ScottSWu
1701 -   @YuichiNukiyama
1702
1703 ## v3.14.0-dev.0
1704
1705 -   [enhancement] Add optional type information to rules (#1323)
1706
1707 Thanks to our contributors!
1708
1709 -   @ScottSWu
1710
1711 ## v3.13.0
1712
1713 -   Stable release containing changes from the last dev release (v3.13.0-dev.0)
1714
1715 ## v3.13.0-dev.0
1716
1717 -   [new-rule] `ordered-imports` rule (#1325)
1718 -   [enhancement] MPEG transport stream files are ignored by the CLI (#1357)
1719
1720 Thanks to our contributors!
1721
1722 -   @chrismbarr
1723 -   @corydeppen
1724 -   @danvk
1725 -   @janaagaard75
1726 -   @mprobst
1727
1728 ## v3.12.0-dev.2
1729
1730 -   [enhancement] Support TypeScript v2.0.0-dev builds
1731
1732 ## v3.12.1
1733
1734 -   Stable release containing changes from the last dev release (v3.12.0-dev.1)
1735
1736 ## v3.12.0-dev.1
1737
1738 -   [bugfix] Fix null reference bug in typedef rule (#1345)
1739
1740 ## v3.12.0
1741
1742 -   Stable release containing changes from the last dev release (v3.12.0-dev.0)
1743
1744 ## v3.12.0-dev.0
1745
1746 -   [new-rule] `only-arrow-functions` rule (#1318)
1747 -   [new-rule] `no-unused-new` rule (#1316)
1748 -   [new-rule-option] `arrow-call-signature` option for `typedef` rule (#1284)
1749 -   [enhancement] Metadata for every rule (#1311)
1750 -   [enhancement] `typedef` rule is more flexible about the location of typedefs for arrow functions (#1176)
1751 -   [enhancement] Failure messages are clearer and more consistent for many rules (#1303, #1307, #1309)
1752 -   [bugfix] `no-consecutive-blank-lines` now handles lines with only whitespace correctly (#1249)
1753 -   [bugfix] Correctly load `.json` config files that have a BOM (#1338)
1754
1755 Thanks to our contributors!
1756
1757 -   @allannienhuis
1758 -   @arnaudvalle
1759 -   @bencoveney
1760 -   @chrismbarr
1761 -   @corydeppen
1762 -   @HamletDRC
1763 -   @JoshuaKGoldberg
1764 -   @timbrown81
1765 -   @tomduncalf
1766 -   @YuichiNukiyama
1767
1768 ## v3.11.0
1769
1770 -   Stable release containing changes from the last dev release (v3.11.0-dev.0)
1771
1772 ## v3.11.0-dev.0
1773
1774 -   [new-rule] `linebreak-style` rule (#123)
1775 -   [new-rule] `no-mergeable-namespace` rule (#843)
1776 -   [enhancement] Add built-in configurations (#1261)
1777 -   [enhancement] New vso formatter (#1281)
1778 -   [new-rule-option] `ignore-interfaces` option for `semicolon` rule (#1233)
1779 -   [bugfix] `no-default-export` rule handles more default export cases (#1241)
1780
1781 Thanks to our contributors!
1782
1783 -   @cgwrench
1784 -   @HamletDRC
1785 -   @lijunle
1786 -   @paldepind
1787 -   @patsissons
1788 -   @schmuli
1789 -   @YuichiNukiyama
1790
1791 ## v3.10.2
1792
1793 -   Stable release containing changes from the last dev release (v3.10.0-dev.2)
1794
1795 ## v3.10.0-dev.2
1796
1797 -   [bugfix] `member-ordering` rule doesn't crash on methods in class expressions (#1252)
1798 -   [bugfix] `ban` rule handles chained methods appropriately (#1234)
1799
1800 Thanks to our contributors!
1801
1802 -   @marines
1803
1804 ## v3.10.1
1805
1806 -   Stable release containing changes from the last dev release (v3.10.0-dev.1)
1807
1808 ## v3.10.0-dev.1
1809
1810 -   [bugfix] `member-ordering` rule doesn't crash on methods in object literals (#1243)
1811
1812 ## v3.10.0
1813
1814 -   Stable release containing changes from the last dev release (v3.10.0-dev.0)
1815
1816 ## v3.10.0-dev.0
1817
1818 -   [new-rule] `new-parens` rule (#1177)
1819 -   [new-rule] `no-default-export` rule (#1182)
1820 -   [new-rule-option] `order: ...` option for `member-ordering` rule (#1208)
1821 -   [new-rule-option] "ignore-for-loop" option for `one-variable-per-declaration` rule (#1204)
1822 -   [enhancement] "no-this-in-function-in-method" option renamed to "check-function-in-method" (#1203)
1823 -   [bugfix] `semicolon` rule checks export statements (#1155)
1824
1825 Thanks to our contributors!
1826
1827 -   @chrismbarr
1828 -   @HamletDRC
1829 -   @larshp
1830 -   @patsissons
1831 -   @YuichiNukiyama
1832
1833 ## v3.9.0
1834
1835 -   Stable release containing changes from the last dev release (v3.9.0-dev.0)
1836
1837 ## v3.9.0-dev.0
1838
1839 -   [new-rule] `no-namespace` rule (#1133)
1840 -   [new-rule] `one-variable-per-declaration` rule (#525)
1841 -   [new-rule-option] "ignore-params" option for `no-inferrable-types` rule (#1190)
1842 -   [new-rule-option] "no-this-in-function-in-method" option for `no-invalid-this` rule (#1179)
1843 -   [enhancement] Single line enable/disable comments (#144)
1844 -   [enhancement] Resolve `extends` packages relative to location of configuration file (#1171)
1845 -   [enhancement] `Linter` class will throw an error if configuration is of an invalid type (#1167)
1846 -   [bugfix] `use-isnan` allows assaignments to `NaN` (#1054)
1847 -   [bugfix] `no-unreachable` handles allows hoisted type aliases (#564)
1848 -   [bugfix] `member-ordering` rule now checks constructors (#1158)
1849 -   [bugfix] `--test` CLI command works correctly with specifiying custom rules (#1195)
1850
1851 Thanks to our contributors!
1852
1853 -   @abierbaum
1854 -   @HamletDRC
1855 -   @inthemill
1856 -   @janslow
1857 -   @JoshuaKGoldberg
1858 -   @mprobst
1859 -   @patsissions
1860 -   @YuichiNukiyama
1861
1862 ## v3.8.1
1863
1864 -   Stable release containing changes from the last dev release (v3.8.0-dev.1)
1865
1866 ## v3.8.0-dev.1
1867
1868 -   [bugfix] Allow JS directives at the start of constructors, getters, and setters (#1159)
1869 -   [bugfix] Remove accidentally included performance profiles from published NPM artifact (#1160)
1870
1871 ## v3.8.0
1872
1873 -   Stable release containing changes from the last dev release (v3.8.0-dev.0)
1874
1875 ## v3.8.0-dev.0
1876
1877 -   [new-rule] `no-invalid-this` rule (#1105)
1878 -   [new-rule] `use-isnan` rule (#1054)
1879 -   [new-rule] `no-reference` rule (#1139)
1880 -   [new-rule-option] "allow-pascal-case" option for `variable-name` rule (#1079)
1881 -   [enhancement] Comments now allowed in `tslint.json` files (#1129)
1882 -   [enhancement] Smarter `trailing-comma` behavior (#1122)
1883 -   [enhancement] `semicolon` rule more lenient with arrow-function class members (#1076)
1884 -   [enhancement] Allow enabling/disabling rules with `//` comments (#1134)
1885 -   [enhancement] New checkstyle formatter (#250)
1886 -   [enhancement] Clearer message for `no-var-keyword` rule (#1124)
1887 -   [bugfix] Loaded configurations are not cached (#1128)
1888 -   [bugfix] Allow JS directives at the start of class methods (#1144)
1889
1890 Thanks to our contributors!
1891
1892 -   @AndyMoreland
1893 -   @chrismbarr
1894 -   @HamletDRC
1895 -   @JoshuaKGoldberg
1896 -   @sshev
1897 -   @unional
1898
1899 ## v3.7.4
1900
1901 -   Stable release containing changes from the last dev release (v3.7.0-dev.5)
1902
1903 ## v3.7.0-dev.5
1904
1905 -   [bugfix] Allow JS directives in namespaces (#1115)
1906
1907 ## v3.7.3
1908
1909 -   Stable release containing changes from the last dev release (v3.7.0-dev.4)
1910
1911 ## v3.7.0-dev.4
1912
1913 -   [bugfix] Downgrade `findup-sync` dependency (#1108)
1914
1915 ## v3.7.2
1916
1917 -   Stable release containing changes from the last dev release (v3.7.0-dev.3)
1918
1919 ## v3.7.0-dev.3
1920
1921 -   [bugfix] `findConfigurationPath` always returns an absolute path (#1093)
1922 -   [bugfix] Update `findup-sync` dependency (#1080)
1923 -   [bugfix] `declare global` no longer triggers `no-internal-module` rule (#1069)
1924 -   [bugfix] Valid JS directives no longer trigger `no-unused-expression` rule (#1050)
1925
1926 ## v3.7.1
1927
1928 -   Stable release containing changes from the last dev release
1929
1930 ## v3.7.0-dev.2
1931
1932 -   [bugfix] Improve handling of paths provided via the -c CLI option (#1083)
1933
1934 ## v3.7.0
1935
1936 -   Stable release containing changes from the last dev release
1937
1938 ## v3.7.0-dev.1
1939
1940 -   [enhancement] `extends` field for `tslint.json` files (#997)
1941 -   [enhancement] `--force` CLI option (#1059)
1942 -   [enhancement] Improve how `Linter` class handles configurations with a `rulesDirectory` field (#1035)
1943 -   [new-rule] `no-angle-bracket-type-assertion` rule (#639)
1944 -   [new-rule-option] "allow-undefined-check" option for `triple-equals` rule (#602)
1945 -   [new-rule-option] "always-prefix" and "never-prefix" option for `interface-name` rule (#512)
1946
1947 Thanks to our contributors!
1948
1949 -   @Arnavion
1950 -   @chrismbarr
1951 -   @ChrisPearce
1952 -   @JoshuaKGoldberg
1953 -   @patsissonso
1954 -   @sasidhar
1955 -   @unional
1956 -   @vvakame
1957
1958 ## v3.6.0
1959
1960 -   Stable release containing changes from the last dev release
1961
1962 ## v3.6.0-dev.1
1963
1964 -   [enhancement] Add `--exclude` CLI option (#915)
1965 -   [bugfix] Fix `no-shadowed-variable` rule handling of standalone blocks (#1021)
1966 -   [deprecation] Configuration through `package.json` files (#1020)
1967 -   [API] Export additional configuration methods from top-level "tslint" module (#1009)
1968
1969 Thanks to our contributors!
1970
1971 -   @blakeembrey
1972 -   @hamhut1066
1973 -   @meowtec
1974
1975 ## v3.5.0
1976
1977 -   Stable release containing changes from the last dev release
1978
1979 ## v3.5.0-dev.1
1980
1981 -   [new-rule-option] "ignore-pattern" option for `no-unused-variable` rule (#314)
1982 -   [bugfix] Fix occassional crash in `no-string-literal` rule (#906)
1983 -   [enhancement] Tweak behavior of `member-ordering` rule with regards to arrow function types in interfaces (#226)
1984
1985 Thanks to our contributors!
1986
1987 -   @arusakov
1988 -   @Pajn
1989
1990 ## v3.4.0
1991
1992 -   Stable release containing changes from the last two dev releases
1993
1994 ## v3.4.0-dev.2
1995
1996 -   [new-rule-option] "arrow-parameter" option for `typedef` rule (#333)
1997 -   [new-rule-option] "never" option for `semicolon` rule (#363)
1998 -   [new-rule-option] "onespace" setting for `typedef-whitespace` rule (#888)
1999 -   [new-rule-option] `typedef-whitespace` rule can now check spacing on right side of typdef colon (#888)
2000 -   [enhancement] `member-ordering` rule treats arrow functions as methods (#226)
2001 -   [bugfix] Handle spaces before typedefs correctly in `typedef-whitespace` rule (#955)
2002 -   [bugfix] `label-position` rule now allows labels on `for-of` loops (#959)
2003
2004 Thanks to our contributors!
2005
2006 -   @b0r3as
2007 -   @ChaseMoskal
2008 -   @Pajn
2009 -   @pe8ter
2010 -   @tomduncalf
2011
2012 ## v3.4.0-dev.1
2013
2014 -   [enhancement] Revamped testing system (#620)
2015     -   Writing tests for rules is now much simpler with a linter DSL.
2016         See exisitng tests in `test/rules/**/*.ts.lint` for examples.
2017 -   [enhancement] New msbuild formatter (#947)
2018 -   [bugfix] Fix handling of multiline literals in `trailing-comma` rule (#856)
2019 -   [bugfix] `one-line` rule correctly checks space between `catch` and opening brace (#925)
2020 -   [bugfix] `one-line` rule correctly checks multiline variable declarations (#935)
2021 -   [new-rule-option] New option `check-finally` for `one-line` rule (#925)
2022 -   **BREAKING CHANGES**
2023     -   [bugfix] Report error when a rule in the config file is not found (#598)
2024
2025 Thanks to our contributors!
2026
2027 -   @mmv
2028 -   @pe8ter
2029
2030 ## v3.3.0
2031
2032 -   [bugfix] Tweak TSLint build so TSLint works with typescript@next (#926)
2033
2034 ## v3.3.0-dev.1
2035
2036 -   [bugfix] Correctly handle more than one custom rules directory (#928)
2037
2038 ## v3.2.2
2039
2040 -   Stable release containing changes from the last dev release
2041
2042 ## v3.2.2-dev.1
2043
2044 -   [enhancement] Throw an error if a path to a directory of custom rules is invalid (#910)
2045 -   [new-rule-option] "jsx-single" and "jsx-double" options for `quotemark` rule (#673)
2046 -   [bugfix] Handle paths to directories of custom rules more accurately
2047 -   [bugfix] `no-unused-expression` rule handles `await` statements correctly (#887)
2048
2049 ## v3.2.1
2050
2051 -   Stable release containing changes from the last dev release
2052
2053 ## v3.2.1-dev.1
2054
2055 -   [enhancement] automatically generate a `tslint.json` file with new `--init` CLI command (#717)
2056 -   [bugfix] `no-var-keyword` rule detects the use of `var` in all types of `for` loops (#855)
2057
2058 ## v3.2.0
2059
2060 -   Stable release containing changes from last two dev releases
2061
2062 ## v3.2.0-dev.2
2063
2064 -   [bugfix] formatters are now exported correctly to work with TS 1.8 (#863)
2065
2066 ## v3.2.0-dev.1
2067
2068 -   [bugfix] fixed bug in how custom rules directories are registered (#844)
2069 -   [enhancement] better support for globs in CLI (#827)
2070 -   [new-rule] `no-null-keyword` rule (#722)
2071
2072 ## v3.1.1
2073
2074 -   Bump TypeScript peer dependency to `>= 1.7.3` due to `const enum` incompatibility (#832)
2075
2076 ## v3.1.0
2077
2078 -   [bugfix] build with TS v1.7.3 to fix null pointer exception (#832)
2079 -   [bugfix] fixed false positive in `no-require-imports` rule (#816)
2080
2081 ## v3.1.0-dev.1
2082
2083 -   [bugfix] fixed `no-shadowed-variable` false positives when handling destructuring in function params (#727)
2084 -   [enhancement] `rulesDirectory` in `tslint.json` now supports multiple file paths (#795)
2085
2086 ## v3.0.0
2087
2088 -   [bugfix] `member-access` rule now handles object literals and get/set accessors properly (#801)
2089     -   New rule options: `check-accessor` and `check-constructor`
2090 -   All the changes from the following releases, including some **breaking changes**:
2091     -   `3.0.0-dev.3`
2092     -   `3.0.0-dev.2`
2093     -   `3.0.0-dev.1`
2094     -   `2.6.0-dev.2`
2095     -   `2.6.0-dev.1`
2096
2097 ## v3.0.0-dev.3
2098
2099 -   TypeScript is now a peerDependency (#791)
2100 -   [bugfix] `no-unused-variable` rule with `react` option works with self-closing JSX tags (#776)
2101 -   [bugfix] `use-strict` bugfix (#544)
2102
2103 ## v3.0.0-dev.2
2104
2105 -   [new-rule-option] "react" option for `no-unused-variable` rule (#698, #725)
2106 -   [bugfix] Fix how `Linter` is exported from "tslint" module (#760)
2107 -   [bugfix] `no-use-before-declare` rule doesn't crash on uncompilable code (#763)
2108
2109 ## v3.0.0-dev.1
2110
2111 -   **BREAKING CHANGES**
2112     -   Rearchitect TSLint to use external modules instead of merged namespaces (#726)
2113         -   Dependencies need to be handled differently now by custom rules and formatters
2114         -   See the [PR](https://github.com/palantir/tslint/pull/726) for full details about this change
2115     -   `no-trailing-comma` rule removed, it is replaced by the `trailing-comma` rule (#687)
2116     -   Rename `sort-object-literal-keys` rule to `object-literal-sort-keys` (#304, #537)
2117     -   `Lint.abstract()` has been removed (#700)
2118 -   [new-rule] `trailing-comma` rule (#557, #687)
2119 -   [new-rule-option] "ban-keywords" option for `variable-name` rule (#735, #748)
2120 -   [bugfix] `typedef` rule now handles `for-of` loops correctly (#743)
2121 -   [bugfix] Handle tslint.json utf-8 files which have a BOM correctly (#90)
2122
2123 ## v2.6.0-dev.2
2124
2125 -   Upgrade TypeScript compiler to `v1.7.0-dev.20151003`
2126 -   [bugfix] `no-unused-expression` rule now handles yield expressions properly (#706)
2127
2128 ## v2.6.0-dev.1
2129
2130 -   Upgrade TypeScript compiler to `v1.7.0-dev.20150924`
2131
2132 ## v2.5.1
2133
2134 -   [new-rule] no-inferrable-types rule (#676)
2135 -   [new-rule-option] "avoid-escape" option for quotemark rule (#543)
2136 -   [bugfix] type declaration for tslint external module #686
2137 -   [enhancement] `AbstractRule` and `AbstractFormatter` are now abstract classes (#631)
2138     -   Note: `Lint.abstract()` is now deprecated
2139
2140 ## v2.5.0
2141
2142 -   Use TypeScript compiler `v1.6.2`
2143 -   [bugfixes] #637, #642, #650, #652
2144 -   [bugfixes] fix various false positives in `no-unused-variable` rule (#570, #613, #663)
2145 -   Update project setup for latest VSCode (#662)
2146
2147 ## v2.5.0-beta
2148
2149 -   Use TypeScript compiler `v1.6.0-beta`
2150 -   [bugfix] Fix `no-internal-module` false positives on nested namespaces (#600)
2151 -   [docs] Add documentation for `sort-object-literal-keys` rule
2152
2153 ## v2.5.0-dev.5
2154
2155 -   Upgrade TypeScript compiler to `v1.7.0-dev.20150828`
2156 -   [bugfix] Handle .tsx files appropriately (#597, #558)
2157
2158 ## v2.5.0-dev.4
2159
2160 -   Upgrade TypeScript compiler to `v1.6.0-dev.20150825`
2161
2162 ## v2.5.0-dev.3
2163
2164 -   Upgrade TypeScript compiler to `v1.6.0-dev.20150821`
2165
2166 ## v2.5.0-dev.2
2167
2168 -   Upgrade TypeScript compiler to `v1.6.0-dev.20150811`
2169 -   [bug] fix `whitespace` false positive in JSX elements (#559)
2170
2171 ## v2.5.0-dev.1
2172
2173 -   Upgrade TypeScript compiler to `v1.6.0-dev.20150805`
2174 -   [enhancement] Support `.tsx` syntax (#490)
2175
2176 ## v2.4.5
2177
2178 -   [bugfix] fix false positives on `no-shadowed-variable` rule (#500)
2179 -   [enhancement] add `allow-trailing-underscore` option to `variable-name` rule
2180
2181 ## v2.4.4
2182
2183 -   [bugfix] remove "typescript" block from package.json (#606)
2184
2185 ## v2.4.3
2186
2187 -   [new-rule] `no-conditional-assignment` (#507)
2188 -   [new-rule] `member-access` (#552)
2189 -   [new-rule] `no-internal-module` (#513)
2190 -   [bugfix] small fixes to `sample.tslint.json` (#545)
2191 -   [bugfix] fix README docs for quotemark and indent (#523)
2192 -   [enhancement] update `findup-sync` and `underscore.string` dependencies
2193 -   [enhancement] add `"typescript"` field to `package.json` (#560)
2194 -   [enhancement] small improvements to CLI help text
2195 -   [enhancement] expose raw failures array in the JS API (#477)
2196
2197 ## v2.4.2
2198
2199 -   [bug] remove npm-shrinkwrap.json from the published package
2200
2201 ## v2.4.0
2202
2203 -   Upgraded Typescript compiler to 1.5.3
2204 -   [bugs] #332, #493, #509, #483
2205 -   [bug] fix error message in `no-var-keyword` rule
2206 -   [enhancement] CI tests are now run on node v0.12 in addition to v0.10
2207 -   **BREAKING**
2208     -   `-f` option removed from CLI
2209
2210 ## v2.3.1-beta
2211
2212 -   [bugs] #137 #434 #451 #456
2213 -   [new-rule] `no-require-imports` disallows `require()` style imports
2214 -   [new-rule] `no-shadowed-variable` moves over shadowed variable checking from `no-duplicate-variable` into its own rule
2215 -   **BREAKING**
2216     -   `no-duplicate-variable` now only checks for duplicates within the same block scope; enable `no-shadowed-variable` to get duplicate-variable checking across block scopes
2217 -   [enhancement] `no-duplicate-variable`, `no-shadowed-variable`, and `no-use-before-declare` now support ES6 destructuring
2218 -   [enhancement] tslint CLI now uses a default configuration if no config file is found
2219
2220 ## v2.3.0-beta
2221
2222 -   [bugs] #401 #367 #324 #352
2223 -   [new-rule] `no-var-keyword` disallows `var` in favor of `let` and `const`
2224 -   [new-rule] `sort-object-literal-keys` forces object-literal keys to be sorted alphabetically
2225 -   Add support for ES6 destructuring and module syntax (affects `variable-name`, `no-use-before-declare`, `whitespace` and `no-unused-variable`)
2226 -   Add support for ES6 for-of and spread operator syntax
2227 -   Use tsconfig.json & JSCS in the build system
2228
2229 ## v2.2.0-beta
2230
2231 -   Upgraded Typescript compiler to 1.5.0-beta
2232 -   **BREAKING CHANGES**
2233     -   due to changes to the typescript compiler API, old custom rules may no longer work and may need to be rewritten
2234     -   the JSON formatter's line and character positions are now back to being 0-indexed instead of 1-indexed
2235 -   [bugs] #328 #334 #319 #351 #365 #254
2236 -   [bug] fixes for tslint behavior around template strings (fixes #357, #349, #332, and more)
2237 -   [new-rule] `align` rule now enforces vertical alignment on parameters, arguments, and statements
2238 -   [new-rule] `switch-default` enforces a `default` case in `switch` statements
2239 -   [feature] `no-duplicate-variable` rule now additionally checks if function parameters have been shadowed
2240 -   Additional fixes to existing rules to work as before with the typescript 1.5 compiler
2241
2242 ## v2.1.1
2243
2244 -   [bugs] #292 #293 #295 #301 #302
2245 -   Some internal refactoring
2246 -   Added Windows CI testing (appveyor)
2247
2248 ## v2.1.0
2249
2250 -   Fix crash on Windows
2251
2252 ## v2.0.1
2253
2254 -   Upgraded Typescript compiler to 1.4
2255 -   **BREAKING CHANGES**
2256     -   typedef rule options were modified:
2257         -   index-signature removed as no longer necessary
2258         -   property-signature renamed to property-declaration
2259         -   variable-declarator renamed to variable-declaration
2260         -   member-variable-declarator renamed to member-variable-declaration
2261     -   typedef-whitespace rule options were modified:
2262         -   catch-clause was removed as invalid
2263         -   further options were added, see readme for more details
2264     -   due to changes to the typescript compiler API, old custom rules may no longer work and may need to be rewritten
2265     -   the JSON formatter's line and character positions are now 1-indexed instead of 0-indexed
2266
2267 ## v1.2.0
2268
2269 -   [bug] #245
2270
2271 ## v1.0.1
2272
2273 -   [bug] #238
2274
2275 ## v1.0.0
2276
2277 -   upgrade TypeScript compiler to 1.3
2278 -   **BREAKING CHANGES**
2279     -   all error messages now start with a lower-case character and do not end with a period
2280     -   all rule options are consistent in nomenclature. The `typedef` and `typedef-whitespace` rules now take in hyphenated options
2281     -   `unused-variables` rule cannot find unused private variables defined in the constructor due to a bug in 1.3 compiler
2282     -   `indent` rule has changed to only check for tabs or spaces and not enforce indentation levels
2283
2284 ## v0.4.12
2285
2286 -   multiple files with -f on cli
2287 -   config file search starts with input file
2288
2289 ## v0.4.11
2290
2291 -   [bugs] #136, #163
2292 -   internal refactors
2293
2294 ## v0.4.10
2295
2296 -   [bugs] #138, #145, #146, #148
2297
2298 ## v0.4.9
2299
2300 -   [new-rule] `no-any` disallows all uses of `any`
2301 -   [bug] `/* tslint:disable */` now disables semicolon rule as well
2302 -   [bug] delete operator no longer results in a false positive for `no-unused-expression`
2303
2304 ## v0.4.8
2305
2306 -   [new-rule] `no-var-requires` disallows require statements not part of an import statement
2307 -   [new-rule] `typedef` rule also checks for member variables
2308 -   [bug] `no-unused-variable` no longer triggers false positives for class members labeled only `static`
2309 -   [bug] `no-unused-expression` no longer triggers false positives for `"use strict";` expressions
2310 -   [bug] `use-strict` works correctly on function declarations
2311 -   [bug] config file is now discoverable from other drives on Windows
2312
2313 ## v0.4.7
2314
2315 -   [new-rule] added `no-unused-expression` rule which disallows unused expression statements
2316 -   [feature] the `check-operator` option for the `whitespace` rule now checks whitespace around the => token
2317 -   [bug] `no-use-before-declare-rule` no longer triggers false positives for member variables of classes used before the class is declared
2318 -   [bug] semicolon at end of file no longer triggers false positives for `whitespace` rule
2319 -   [bug] hoisted functions no longer cause false positives for the `no-unreachable` rule
2320 -   [bug] the rule loader no longer transforms/ignores the leading and trailing underscores and dashes of rule names in the config file
2321 -   [bug] `export import` statements no longer false positives for `no-unused-variable-rule`
2322 -   [docs] added documentation for creating custom rules and formatters
2323 -   [docs] added sample `tslint.json` file, under `docs/sample.tslint.json`
2324
2325 ## v0.4.6
2326
2327 -   [build] migrated build to use `grunt-ts` instead of `grunt-typescript`
2328 -   [feature] `package.json` now contains a `tslintConfig` paramater to allow users to specify the location of the configuration file there
2329 -   [feature] tslint now searches for the configuration file in the user's home directory if not found in the current path
2330 -   [bug] unbraced conditionals no longer cause false positives for the `no-unreachable` rule
2331
2332 ## v0.4.5
2333
2334 -   [feature] `no-unused-variable` no longer checks parameters by default. Parameters are now only checked if the `check-parameters` option is set.
2335 -   [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.
2336
2337 ## v0.4.4
2338
2339 -   [bug] `no-unused-variable` validates function parameters and constructor methods
2340 -   [bug] `no-empty` and `no-trailing-comma` rules handle empty objects
2341
2342 ## v0.4.3
2343
2344 -   [new-rule] `no-unused-variable`
2345 -   [new-rule] `no-trailing-comma`
2346 -   [new-rule] `no-use-before-declare`
2347 -   [feature] support `--version` in CLI
2348 -   [feature] expose rule names to custom formatters
2349 -   [feature] add `verbose` formatter
2350 -   [bug] `no-empty` allows constructors with member declaration parameters
2351 -   [bug] CLI supports `--help`
2352 -   [bug] `max-line-length` allows CRLF endings