Skip to content

Commit c680cbc

Browse files
lukythj-f1
authored andcommitted
docs(eslint-plugin): add missing TSLint rules in the roadmap (typescript-eslint#238)
- Rules from TSLint version 5.12.0 onward haven't added, including: - `ban-ts-ignore` - `function-constructor` - `unnecessary-constructor` - `no-default-import` - `comment-type` - `increment-decrement` - `unnecessary-bind` - `no-function-constructor-with-string-args` is now deprecated in favor of `function-constructor`
1 parent 61c60dc commit c680cbc

File tree

1 file changed

+33
-16
lines changed

1 file changed

+33
-16
lines changed

packages/eslint-plugin/ROADMAP.md

Lines changed: 33 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
| TSLint rule | | ESLint rule |
1414
| --------------------------------- | :-: | ---------------------------------------------------- |
1515
| [`adjacent-overload-signatures`] || [`@typescript-eslint/adjacent-overload-signatures`] |
16+
| [`ban-ts-ignore`] | 🛑 | N/A |
1617
| [`ban-types`] || [`@typescript-eslint/ban-types`] |
1718
| [`member-access`] || [`@typescript-eslint/explicit-member-accessibility`] |
1819
| [`member-ordering`] || [`@typescript-eslint/member-ordering`] |
@@ -44,6 +45,7 @@
4445
| [`ban`] | 🌟 | [`no-restricted-properties`][no-restricted-properties] |
4546
| [`curly`] | 🌟 | [`curly`][curly] |
4647
| [`forin`] | 🌟 | [`guard-for-in`][guard-for-in] |
48+
| [`function-constructor`] | 🌟 | [`no-new-func`][no-new-func] |
4749
| [`import-blacklist`] | 🌟 | [`no-restricted-imports`][no-restricted-imports] |
4850
| [`label-position`] | 🌟 | [`no-unused-labels`][no-unused-labels] (similar) |
4951
| [`no-arg`] | 🌟 | [`no-caller`][no-caller] (also blocks `arguments.caller`) |
@@ -93,6 +95,7 @@
9395
| [`switch-default`] | 🌟 | [`default-case`][default-case] |
9496
| [`triple-equals`] | 🌟 | [`eqeqeq`][eqeqeq] |
9597
| [`typeof-compare`] | 🌟 | [`valid-typeof`][valid-typeof] |
98+
| [`unnecessary-constructor`] | 🌟 | [`no-useless-constructor`][no-useless-constructor] |
9699
| [`use-default-type-parameter`] | 🛑 | N/A |
97100
| [`use-isnan`] | 🌟 | [`use-isnan`][use-isnan] |
98101

@@ -112,6 +115,7 @@
112115
| [`max-file-line-count`] | 🌟 | [`max-lines`][max-lines] |
113116
| [`max-line-length`] | 🌟 | [`max-len`][max-len] or [Prettier] |
114117
| [`no-default-export`] | 🔌 | [`import/no-default-export`] |
118+
| [`no-default-import`] | 🛑 | N/A |
115119
| [`no-duplicate-imports`] | 🔌 | [`import/no-duplicates`] |
116120
| [`no-mergeable-namespace`] | 🛑 | N/A |
117121
| [`no-require-imports`] || [`@typescript-eslint/no-require-imports`] |
@@ -135,11 +139,13 @@
135139
| [`callable-types`] || [`@typescript-eslint/prefer-function-type`] |
136140
| [`class-name`] || [`@typescript-eslint/class-name-casing`] |
137141
| [`comment-format`] | 🌟 | [`capitalized-comments`][capitalized-comments] & [`spaced-comment`][spaced-comment] |
142+
| [`comment-type`] | 🛑 | N/A |
138143
| [`completed-docs`] | 🔌 | [`eslint-plugin-jsdoc`][plugin:jsdoc] |
139144
| [`encoding`] | 🛑 | N/A |
140145
| [`file-header`] | 🔌 | [`eslint-plugin-header`][plugin:header] or [`-file-header`][plugin:file-header] |
141146
| [`file-name-casing`] | 🔌 | [`unicorn/filename-case`] |
142147
| [`import-spacing`] | 🔌 | Use [Prettier] |
148+
| [`increment-decrement`] | 🌟 | [`no-plusplus`][no-plusplus] |
143149
| [`interface-name`] || [`@typescript-eslint/interface-name-prefix`] |
144150
| [`interface-over-type-literal`] || [`@typescript-eslint/prefer-interface`] |
145151
| [`jsdoc-format`] | 🌓 | [`valid-jsdoc`][valid-jsdoc] or [`eslint-plugin-jsdoc`][plugin:jsdoc] |
@@ -176,6 +182,7 @@
176182
| [`space-within-parens`] | 🌟 | [`space-in-parens`][space-in-parens] |
177183
| [`switch-final-break`] | 🛑 | N/A |
178184
| [`type-literal-delimiter`] || [`@typescript-eslint/member-delimiter-style`] |
185+
| [`unnecessary-bind`] | 🌟 | [`no-extra-bind`][no-extra-bind] |
179186
| [`variable-name`] | 🌟 | <sup>[2]</sup> |
180187
| [`whitespace`] | 🔌 | Use [Prettier] |
181188

@@ -185,7 +192,7 @@
185192
## tslint-microsoft-contrib rules
186193

187194
Rule listing is [here](https://github.com/Microsoft/tslint-microsoft-contrib#supported-rules).
188-
Deprecated rules are excluded (`missing-jsdoc`, `missing-optional-annotation`, `no-duplicate-case`, `no-duplicate-parameter-names`, `no-increment-decrement`, `no-empty-interfaces`, `no-missing-visibility-modifiers`, `no-multiple-var-decl`, `no-reserved-keywords`, `no-stateless-class`, `no-var-self`, `no-unnecessary-bind`, and `valid-typeof`). See the docs in the link above to find out what to use instead.
195+
Deprecated rules are excluded (`missing-jsdoc`, `missing-optional-annotation`, `no-duplicate-case`, `no-duplicate-parameter-names`, `no-function-constructor-with-string-args`, `no-increment-decrement`, `no-empty-interfaces`, `no-missing-visibility-modifiers`, `no-multiple-var-decl`, `no-reserved-keywords`, `no-stateless-class`, `no-var-self`, `no-unnecessary-bind`, and `valid-typeof`). See the docs in the link above to find out what to use instead.
189196

190197
### Testing
191198

@@ -254,21 +261,20 @@ Relevant plugins: [`chai-expect-keywords`](https://github.com/gavinaiken/eslint-
254261

255262
### Security
256263

257-
| tslint-microsoft-contrib rule | | ESLint rule |
258-
| ------------------------------------------ | :-: | -------------------------------------------------- |
259-
| `no-disable-auto-sanitization` | 🛑 | N/A |
260-
| `no-document-domain` | 🌓 | Use [`no-restricted-syntax`][no-restricted-syntax] |
261-
| `no-function-constructor-with-string-args` | 🌟 | [`no-new-func`][no-new-func] |
262-
| `no-http-string` | 🛑 | N/A |
263-
| `no-inner-html` | 🛑 | N/A |
264-
| `no-string-based-set-immediate` | 🛑 | N/A |
265-
| `no-string-based-set-interval` | 🛑 | N/A |
266-
| `no-string-based-set-timeout` | 🛑 | N/A |
267-
| `react-iframe-missing-sandbox` | 🛑 | N/A |
268-
| `react-no-dangerous-html` | 🔌 | [`react/no-danger`] |
269-
| `non-literal-fs-path` | 🔌 | [`security/detect-non-literal-fs-filename`] |
270-
| `non-literal-require` | 🔌 | [`security/detect-non-literal-require`] |
271-
| `possible-timing-attack` | 🔌 | [`security/detect-possible-timing-attacks`] |
264+
| tslint-microsoft-contrib rule | | ESLint rule |
265+
| ------------------------------- | :-: | -------------------------------------------------- |
266+
| `no-disable-auto-sanitization` | 🛑 | N/A |
267+
| `no-document-domain` | 🌓 | Use [`no-restricted-syntax`][no-restricted-syntax] |
268+
| `no-http-string` | 🛑 | N/A |
269+
| `no-inner-html` | 🛑 | N/A |
270+
| `no-string-based-set-immediate` | 🛑 | N/A |
271+
| `no-string-based-set-interval` | 🛑 | N/A |
272+
| `no-string-based-set-timeout` | 🛑 | N/A |
273+
| `react-iframe-missing-sandbox` | 🛑 | N/A |
274+
| `react-no-dangerous-html` | 🔌 | [`react/no-danger`] |
275+
| `non-literal-fs-path` | 🔌 | [`security/detect-non-literal-fs-filename`] |
276+
| `non-literal-require` | 🔌 | [`security/detect-non-literal-require`] |
277+
| `possible-timing-attack` | 🔌 | [`security/detect-possible-timing-attacks`] |
272278

273279
### Browser
274280

@@ -317,6 +323,7 @@ Relevant plugins: [`chai-expect-keywords`](https://github.com/gavinaiken/eslint-
317323
<!-- TSLint -->
318324

319325
[`adjacent-overload-signatures`]: https://palantir.github.io/tslint/rules/adjacent-overload-signatures
326+
[`ban-ts-ignore`]: https://palantir.github.io/tslint/rules/ban-ts-ignore/
320327
[`ban-types`]: https://palantir.github.io/tslint/rules/ban-types
321328
[`member-access`]: https://palantir.github.io/tslint/rules/member-access
322329
[`member-ordering`]: https://palantir.github.io/tslint/rules/member-ordering
@@ -343,6 +350,7 @@ Relevant plugins: [`chai-expect-keywords`](https://github.com/gavinaiken/eslint-
343350
[`ban`]: https://palantir.github.io/tslint/rules/ban
344351
[`curly`]: https://palantir.github.io/tslint/rules/curly
345352
[`forin`]: https://palantir.github.io/tslint/rules/forin
353+
[`function-constructor`]: https://palantir.github.io/tslint/rules/function-constructor
346354
[`import-blacklist`]: https://palantir.github.io/tslint/rules/import-blacklist
347355
[`label-position`]: https://palantir.github.io/tslint/rules/label-position
348356
[`no-arg`]: https://palantir.github.io/tslint/rules/no-arg
@@ -392,6 +400,7 @@ Relevant plugins: [`chai-expect-keywords`](https://github.com/gavinaiken/eslint-
392400
[`switch-default`]: https://palantir.github.io/tslint/rules/switch-default
393401
[`triple-equals`]: https://palantir.github.io/tslint/rules/triple-equals
394402
[`typeof-compare`]: https://palantir.github.io/tslint/rules/typeof-compare
403+
[`unnecessary-constructor`]: https://palantir.github.io/tslint/rules/unnecessary-constructor
395404
[`use-default-type-parameter`]: https://palantir.github.io/tslint/rules/use-default-type-parameter
396405
[`use-isnan`]: https://palantir.github.io/tslint/rules/use-isnan
397406
[`cyclomatic-complexity`]: https://palantir.github.io/tslint/rules/cyclomatic-complexity
@@ -403,6 +412,7 @@ Relevant plugins: [`chai-expect-keywords`](https://github.com/gavinaiken/eslint-
403412
[`max-file-line-count`]: https://palantir.github.io/tslint/rules/max-file-line-count
404413
[`max-line-length`]: https://palantir.github.io/tslint/rules/max-line-length
405414
[`no-default-export`]: https://palantir.github.io/tslint/rules/no-default-export
415+
[`no-default-import`]: https://palantir.github.io/tslint/rules/no-default-import
406416
[`no-duplicate-imports`]: https://palantir.github.io/tslint/rules/no-duplicate-imports
407417
[`no-mergeable-namespace`]: https://palantir.github.io/tslint/rules/no-mergeable-namespace
408418
[`no-require-imports`]: https://palantir.github.io/tslint/rules/no-require-imports
@@ -418,11 +428,13 @@ Relevant plugins: [`chai-expect-keywords`](https://github.com/gavinaiken/eslint-
418428
[`callable-types`]: https://palantir.github.io/tslint/rules/callable-types
419429
[`class-name`]: https://palantir.github.io/tslint/rules/class-name
420430
[`comment-format`]: https://palantir.github.io/tslint/rules/comment-format
431+
[`comment-type`]: https://palantir.github.io/tslint/rules/comment-type
421432
[`completed-docs`]: https://palantir.github.io/tslint/rules/completed-docs
422433
[`encoding`]: https://palantir.github.io/tslint/rules/encoding
423434
[`file-header`]: https://palantir.github.io/tslint/rules/file-header
424435
[`file-name-casing`]: https://palantir.github.io/tslint/rules/file-name-casing
425436
[`import-spacing`]: https://palantir.github.io/tslint/rules/import-spacing
437+
[`increment-decrement`]: https://palantir.github.io/tslint/rules/increment-decrement
426438
[`interface-name`]: https://palantir.github.io/tslint/rules/interface-name
427439
[`interface-over-type-literal`]: https://palantir.github.io/tslint/rules/interface-over-type-literal
428440
[`jsdoc-format`]: https://palantir.github.io/tslint/rules/jsdoc-format
@@ -459,6 +471,7 @@ Relevant plugins: [`chai-expect-keywords`](https://github.com/gavinaiken/eslint-
459471
[`space-within-parens`]: https://palantir.github.io/tslint/rules/space-within-parens
460472
[`switch-final-break`]: https://palantir.github.io/tslint/rules/switch-final-break
461473
[`type-literal-delimiter`]: https://palantir.github.io/tslint/rules/type-literal-delimiter
474+
[`unnecessary-bind`]: https://palantir.github.io/tslint/rules/unnecessary-bind
462475
[`variable-name`]: https://palantir.github.io/tslint/rules/variable-name
463476
[`whitespace`]: https://palantir.github.io/tslint/rules/whitespace
464477

@@ -471,6 +484,7 @@ Relevant plugins: [`chai-expect-keywords`](https://github.com/gavinaiken/eslint-
471484
[no-restricted-syntax]: https://eslint.org/docs/rules/no-restricted-syntax
472485
[curly]: https://eslint.org/docs/rules/curly
473486
[guard-for-in]: https://eslint.org/docs/rules/guard-for-in
487+
[no-new-func]: https://eslint.org/docs/rules/no-new-func
474488
[no-restricted-imports]: https://eslint.org/docs/rules/no-restricted-imports
475489
[no-unused-labels]: https://eslint.org/docs/rules/no-unused-labels
476490
[no-caller]: https://eslint.org/docs/rules/no-caller
@@ -502,6 +516,7 @@ Relevant plugins: [`chai-expect-keywords`](https://github.com/gavinaiken/eslint-
502516
[default-case]: https://eslint.org/docs/rules/default-case
503517
[eqeqeq]: https://eslint.org/docs/rules/eqeqeq
504518
[valid-typeof]: https://eslint.org/docs/rules/valid-typeof
519+
[no-useless-constructor]: https://eslint.org/docs/rules/no-useless-constructor
505520
[use-isnan]: https://eslint.org/docs/rules/use-isnan
506521
[complexity]: https://eslint.org/docs/rules/complexity
507522
[eol-last]: https://eslint.org/docs/rules/eol-last
@@ -517,6 +532,7 @@ Relevant plugins: [`chai-expect-keywords`](https://github.com/gavinaiken/eslint-
517532
[yoda]: https://eslint.org/docs/rules/yoda
518533
[capitalized-comments]: https://eslint.org/docs/rules/capitalized-comments
519534
[spaced-comment]: https://eslint.org/docs/rules/spaced-comment
535+
[no-plusplus]: https://eslint.org/docs/rules/no-plusplus
520536
[valid-jsdoc]: https://eslint.org/docs/rules/valid-jsdoc
521537
[padding-line-between-statements]: https://eslint.org/docs/rules/padding-line-between-statements
522538
[newline-per-chained-call]: https://eslint.org/docs/rules/newline-per-chained-call
@@ -534,6 +550,7 @@ Relevant plugins: [`chai-expect-keywords`](https://github.com/gavinaiken/eslint-
534550
[semi]: https://eslint.org/docs/rules/semi
535551
[space-after-function-paren]: https://eslint.org/docs/rules/space-before-function-paren
536552
[space-in-parens]: https://eslint.org/docs/rules/space-in-parens
553+
[no-extra-bind]: https://eslint.org/docs/rules/no-extra-bind
537554
[camelcase]: https://eslint.org/docs/rules/camelcase
538555
[no-underscore-dangle]: https://eslint.org/docs/rules/no-underscore-dangle
539556
[id-blacklist]: https://eslint.org/docs/rules/id-blacklist

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy