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