aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorValentin Popov <info@valentineus.link>2020-06-17 20:30:15 +0300
committerValentin Popov <info@valentineus.link>2020-06-17 20:33:14 +0300
commit802224efd3eabc428f4d91d6e21c19fc0b7f9db1 (patch)
tree80e0e7f5c9e39b424e15dc6f8aee9784d5f48f23
parent65cf95c441aaf9789e00ad68ba0b5fd2bbda4501 (diff)
downloadeslint-config-802224efd3eabc428f4d91d6e21c19fc0b7f9db1.tar.xz
eslint-config-802224efd3eabc428f4d91d6e21c19fc0b7f9db1.zip
Updated TypeScript rules
Signed-off-by: Valentin Popov <info@valentineus.link>
-rw-r--r--ROADMAP.md18
-rw-r--r--package-lock.json52
-rw-r--r--package.json8
-rw-r--r--src/rules/typescript/default.json24
-rw-r--r--src/typescript.ts1
5 files changed, 69 insertions, 34 deletions
diff --git a/ROADMAP.md b/ROADMAP.md
index d16e2bb..dcc2822 100644
--- a/ROADMAP.md
+++ b/ROADMAP.md
@@ -385,29 +385,30 @@
- [ ] "array-type"
- [X] "await-thenable"
- [ ] "ban-ts-comment"
-- [ ] "ban-ts-ignore"
+- [ ] "ban-tslint-comment"
- [ ] "ban-types"
- [ ] "brace-style"
-- [ ] "camelcase"
- [X] "class-literal-property-style"
-- [ ] "class-name-casing"
- [X] "comma-spacing"
- [ ] "consistent-type-assertions"
- [ ] "consistent-type-definitions"
- [ ] "default-param-last"
+- [ ] "dot-notation"
- [X] "explicit-function-return-type"
- [X] "explicit-member-accessibility"
- [ ] "explicit-module-boundary-types"
- [ ] "func-call-spacing"
-- [ ] "generic-type-naming"
- [X] "indent"
-- [X] "interface-name-prefix"
+- [ ] "init-declarations"
+- [ ] "keyword-spacing"
+- [ ] "lines-between-class-members"
- [ ] "member-delimiter-style"
-- [ ] "member-naming"
- [ ] "member-ordering"
+- [X] "method-signature-style"
- [ ] "naming-convention"
- [ ] "no-array-constructor"
- [X] "no-base-to-string"
+- [ ] "no-confusing-non-null-assertion"
- [ ] "no-dupe-class-members"
- [ ] "no-dynamic-delete"
- [ ] "no-empty-function"
@@ -421,6 +422,8 @@
- [ ] "no-for-in-array"
- [X] "no-implied-eval"
- [X] "no-inferrable-types"
+- [ ] "no-invalid-this"
+- [ ] "no-invalid-void-type"
- [X] "no-magic-numbers"
- [ ] "no-misused-new"
- [X] "no-misused-promises"
@@ -437,6 +440,7 @@
- [ ] "no-unnecessary-qualifier"
- [ ] "no-unnecessary-type-arguments"
- [X] "no-unnecessary-type-assertion"
+- [ ] "no-unsafe-assignment"
- [X] "no-unsafe-call"
- [X] "no-unsafe-member-access"
- [X] "no-unsafe-return"
@@ -456,8 +460,10 @@
- [ ] "prefer-optional-chain"
- [ ] "prefer-readonly"
- [X] "prefer-readonly-parameter-types"
+- [ ] "prefer-reduce-type-parameter"
- [ ] "prefer-regexp-exec"
- [ ] "prefer-string-starts-ends-with"
+- [ ] "prefer-ts-expect-error"
- [ ] "promise-function-async"
- [X] "quotes"
- [ ] "require-array-sort-compare"
diff --git a/package-lock.json b/package-lock.json
index 88bd254..718b7ec 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -103,25 +103,26 @@
"dev": true
},
"@typescript-eslint/eslint-plugin": {
- "version": "2.34.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.34.0.tgz",
- "integrity": "sha512-4zY3Z88rEE99+CNvTbXSyovv2z9PNOVffTWD2W8QF5s2prBQtwN2zadqERcrHpcR7O/+KMI3fcTAmUUhK/iQcQ==",
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.3.0.tgz",
+ "integrity": "sha512-Ybx/wU75Tazz6nU2d7nN6ll0B98odoiYLXwcuwS5WSttGzK46t0n7TPRQ4ozwcTv82UY6TQoIvI+sJfTzqK9dQ==",
"dev": true,
"requires": {
- "@typescript-eslint/experimental-utils": "2.34.0",
+ "@typescript-eslint/experimental-utils": "3.3.0",
"functional-red-black-tree": "^1.0.1",
"regexpp": "^3.0.0",
+ "semver": "^7.3.2",
"tsutils": "^3.17.1"
}
},
"@typescript-eslint/experimental-utils": {
- "version": "2.34.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.34.0.tgz",
- "integrity": "sha512-eS6FTkq+wuMJ+sgtuNTtcqavWXqsflWcfBnlYhg/nS4aZ1leewkXGbvBhaapn1q6qf4M71bsR1tez5JTRMuqwA==",
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-3.3.0.tgz",
+ "integrity": "sha512-d4pGIAbu/tYsrPrdHCQ5xfadJGvlkUxbeBB56nO/VGmEDi/sKmfa5fGty5t5veL1OyJBrUmSiRn1R1qfVDydrg==",
"dev": true,
"requires": {
"@types/json-schema": "^7.0.3",
- "@typescript-eslint/typescript-estree": "2.34.0",
+ "@typescript-eslint/typescript-estree": "3.3.0",
"eslint-scope": "^5.0.0",
"eslint-utils": "^2.0.0"
}
@@ -136,12 +137,41 @@
"@typescript-eslint/experimental-utils": "2.34.0",
"@typescript-eslint/typescript-estree": "2.34.0",
"eslint-visitor-keys": "^1.1.0"
+ },
+ "dependencies": {
+ "@typescript-eslint/experimental-utils": {
+ "version": "2.34.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.34.0.tgz",
+ "integrity": "sha512-eS6FTkq+wuMJ+sgtuNTtcqavWXqsflWcfBnlYhg/nS4aZ1leewkXGbvBhaapn1q6qf4M71bsR1tez5JTRMuqwA==",
+ "dev": true,
+ "requires": {
+ "@types/json-schema": "^7.0.3",
+ "@typescript-eslint/typescript-estree": "2.34.0",
+ "eslint-scope": "^5.0.0",
+ "eslint-utils": "^2.0.0"
+ }
+ },
+ "@typescript-eslint/typescript-estree": {
+ "version": "2.34.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.34.0.tgz",
+ "integrity": "sha512-OMAr+nJWKdlVM9LOqCqh3pQQPwxHAN7Du8DR6dmwCrAmxtiXQnhHJ6tBNtf+cggqfo51SG/FCwnKhXCIM7hnVg==",
+ "dev": true,
+ "requires": {
+ "debug": "^4.1.1",
+ "eslint-visitor-keys": "^1.1.0",
+ "glob": "^7.1.6",
+ "is-glob": "^4.0.1",
+ "lodash": "^4.17.15",
+ "semver": "^7.3.2",
+ "tsutils": "^3.17.1"
+ }
+ }
}
},
"@typescript-eslint/typescript-estree": {
- "version": "2.34.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.34.0.tgz",
- "integrity": "sha512-OMAr+nJWKdlVM9LOqCqh3pQQPwxHAN7Du8DR6dmwCrAmxtiXQnhHJ6tBNtf+cggqfo51SG/FCwnKhXCIM7hnVg==",
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-3.3.0.tgz",
+ "integrity": "sha512-3SqxylENltEvJsjjMSDCUx/edZNSC7wAqifUU1Ywp//0OWEZwMZJfecJud9XxJ/40rAKEbJMKBOQzeOjrLJFzQ==",
"dev": true,
"requires": {
"debug": "^4.1.1",
diff --git a/package.json b/package.json
index 2471197..f5f00a1 100644
--- a/package.json
+++ b/package.json
@@ -14,8 +14,8 @@
"@rollup/plugin-json": "^4.1.0",
"@rollup/plugin-typescript": "^4.1.2",
"@types/node": "^14.0.13",
- "@typescript-eslint/eslint-plugin": "^2.26.0",
- "@typescript-eslint/parser": "^2.26.0",
+ "@typescript-eslint/eslint-plugin": "^3.3.0",
+ "@typescript-eslint/parser": "^2.34.0",
"eslint": "^6.8.0",
"eslint-plugin-eslint-comments": "^3.1.2",
"eslint-plugin-import": "^2.20.2",
@@ -29,8 +29,8 @@
"typescript": "^3.9.5"
},
"peerDependencies": {
- "@typescript-eslint/eslint-plugin": "^2.26.0",
- "@typescript-eslint/parser": "^2.26.0",
+ "@typescript-eslint/eslint-plugin": "^3.3.0",
+ "@typescript-eslint/parser": "^2.34.0",
"eslint": "^6.8.0",
"eslint-plugin-eslint-comments": "^3.1.2",
"eslint-plugin-import": "^2.20.2",
diff --git a/src/rules/typescript/default.json b/src/rules/typescript/default.json
index 2b45050..fa868f6 100644
--- a/src/rules/typescript/default.json
+++ b/src/rules/typescript/default.json
@@ -16,6 +16,7 @@
"@typescript-eslint/explicit-function-return-type": [
"error",
{
+ "allowConciseArrowFunctionExpressionsStartingWithVoid": false,
"allowExpressions": false,
"allowHigherOrderFunctions": false,
"allowTypedFunctionExpressions": false
@@ -61,12 +62,9 @@
"outerIIFEBody": 1
}
],
- "@typescript-eslint/interface-name-prefix": [
+ "@typescript-eslint/method-signature-style": [
"error",
- {
- "allowUnderscorePrefix": false,
- "prefixWithI": "always"
- }
+ "property"
],
"@typescript-eslint/no-base-to-string": [
"error"
@@ -125,9 +123,7 @@
"@typescript-eslint/no-unnecessary-condition": [
"error",
{
- "allowConstantLoopConditions": false,
- "checkArrayPredicates": true,
- "ignoreRhs": true
+ "allowConstantLoopConditions": false
}
],
"@typescript-eslint/no-unnecessary-type-assertion": [
@@ -213,9 +209,13 @@
"@typescript-eslint/strict-boolean-expressions": [
"error",
{
- "allowNullable": false,
- "allowSafe": false,
- "ignoreRhs": false
+ "allowAny": false,
+ "allowNullableBoolean": false,
+ "allowNullableNumber": false,
+ "allowNullableObject": false,
+ "allowNullableString": false,
+ "allowNumber": false,
+ "allowString": false
}
],
"@typescript-eslint/type-annotation-spacing": [
@@ -297,4 +297,4 @@
"space-before-function-paren": [
"off"
]
-}
+} \ No newline at end of file
diff --git a/src/typescript.ts b/src/typescript.ts
index 6295159..cdbd1f8 100644
--- a/src/typescript.ts
+++ b/src/typescript.ts
@@ -3,7 +3,6 @@ import rDefault from "./rules/typescript/default.json";
module.exports = {
"extends": [
"./javascript",
- "plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/recommended",
"plugin:@typescript-eslint/recommended-requiring-type-checking",
"plugin:import/typescript",