@typescript-eslint/eslint-plugin 7.2.1-alpha.2 → 7.2.1-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/configs/all.js +1 -0
- package/dist/configs/all.js.map +1 -1
- package/dist/configs/disable-type-checked.js +1 -0
- package/dist/configs/disable-type-checked.js.map +1 -1
- package/dist/configs/strict-type-checked-only.js +23 -3
- package/dist/configs/strict-type-checked-only.js.map +1 -1
- package/dist/configs/strict-type-checked.js +27 -4
- package/dist/configs/strict-type-checked.js.map +1 -1
- package/dist/configs/strict.js +4 -1
- package/dist/configs/strict.js.map +1 -1
- package/dist/rules/ban-ts-comment.js +4 -1
- package/dist/rules/ban-ts-comment.js.map +1 -1
- package/dist/rules/index.js +2 -0
- package/dist/rules/index.js.map +1 -1
- package/dist/rules/no-floating-promises.js +4 -1
- package/dist/rules/no-floating-promises.js.map +1 -1
- package/dist/rules/no-misused-promises.js +1 -1
- package/dist/rules/no-misused-promises.js.map +1 -1
- package/dist/rules/no-unnecessary-qualifier.js +1 -1
- package/dist/rules/no-unnecessary-qualifier.js.map +1 -1
- package/dist/rules/no-unsafe-argument.js +1 -25
- package/dist/rules/no-unsafe-argument.js.map +1 -1
- package/dist/rules/no-unused-expressions.js +6 -2
- package/dist/rules/no-unused-expressions.js.map +1 -1
- package/dist/rules/restrict-plus-operands.js +12 -1
- package/dist/rules/restrict-plus-operands.js.map +1 -1
- package/dist/rules/restrict-template-expressions.js +13 -1
- package/dist/rules/restrict-template-expressions.js.map +1 -1
- package/dist/rules/use-unknown-in-catch-callback-variable.js +283 -0
- package/dist/rules/use-unknown-in-catch-callback-variable.js.map +1 -0
- package/dist/util/misc.js +10 -1
- package/dist/util/misc.js.map +1 -1
- package/docs/rules/TEMPLATE.md +10 -4
- package/docs/rules/{adjacent-overload-signatures.md → adjacent-overload-signatures.mdx} +11 -5
- package/docs/rules/{array-type.md → array-type.mdx} +24 -12
- package/docs/rules/{await-thenable.md → await-thenable.mdx} +10 -4
- package/docs/rules/{ban-ts-comment.md → ban-ts-comment.mdx} +32 -18
- package/docs/rules/{ban-tslint-comment.md → ban-tslint-comment.mdx} +10 -4
- package/docs/rules/{ban-types.md → ban-types.mdx} +11 -5
- package/docs/rules/{block-spacing.md → block-spacing.mdx} +3 -0
- package/docs/rules/{brace-style.md → brace-style.mdx} +3 -0
- package/docs/rules/camelcase.md +3 -5
- package/docs/rules/{class-literal-property-style.md → class-literal-property-style.mdx} +18 -11
- package/docs/rules/{class-methods-use-this.md → class-methods-use-this.mdx} +12 -6
- package/docs/rules/{comma-dangle.md → comma-dangle.mdx} +3 -0
- package/docs/rules/{comma-spacing.md → comma-spacing.mdx} +3 -0
- package/docs/rules/{consistent-generic-constructors.md → consistent-generic-constructors.mdx} +17 -8
- package/docs/rules/{consistent-indexed-object-style.md → consistent-indexed-object-style.mdx} +17 -8
- package/docs/rules/{consistent-return.md → consistent-return.mdx} +10 -4
- package/docs/rules/{consistent-type-assertions.md → consistent-type-assertions.mdx} +15 -10
- package/docs/rules/{consistent-type-definitions.md → consistent-type-definitions.mdx} +17 -8
- package/docs/rules/{consistent-type-exports.md → consistent-type-exports.mdx} +17 -8
- package/docs/rules/{consistent-type-imports.md → consistent-type-imports.mdx} +13 -8
- package/docs/rules/{default-param-last.md → default-param-last.mdx} +10 -4
- package/docs/rules/{dot-notation.md → dot-notation.mdx} +3 -0
- package/docs/rules/{explicit-function-return-type.md → explicit-function-return-type.mdx} +59 -32
- package/docs/rules/{explicit-member-accessibility.md → explicit-member-accessibility.mdx} +3 -0
- package/docs/rules/{explicit-module-boundary-types.md → explicit-module-boundary-types.mdx} +39 -21
- package/docs/rules/{func-call-spacing.md → func-call-spacing.mdx} +3 -0
- package/docs/rules/{indent.md → indent.mdx} +3 -0
- package/docs/rules/{init-declarations.md → init-declarations.mdx} +3 -0
- package/docs/rules/{key-spacing.md → key-spacing.mdx} +3 -0
- package/docs/rules/{keyword-spacing.md → keyword-spacing.mdx} +3 -0
- package/docs/rules/{lines-around-comment.md → lines-around-comment.mdx} +3 -0
- package/docs/rules/{lines-between-class-members.md → lines-between-class-members.mdx} +3 -0
- package/docs/rules/{max-params.md → max-params.mdx} +3 -0
- package/docs/rules/{member-delimiter-style.md → member-delimiter-style.mdx} +13 -7
- package/docs/rules/{member-ordering.md → member-ordering.mdx} +92 -56
- package/docs/rules/{method-signature-style.md → method-signature-style.mdx} +17 -8
- package/docs/rules/{naming-convention.md → naming-convention.mdx} +3 -0
- package/docs/rules/{no-array-constructor.md → no-array-constructor.mdx} +10 -4
- package/docs/rules/{no-array-delete.md → no-array-delete.mdx} +9 -5
- package/docs/rules/{no-base-to-string.md → no-base-to-string.mdx} +12 -6
- package/docs/rules/{no-confusing-non-null-assertion.md → no-confusing-non-null-assertion.mdx} +11 -5
- package/docs/rules/{no-confusing-void-expression.md → no-confusing-void-expression.mdx} +10 -4
- package/docs/rules/{no-dupe-class-members.md → no-dupe-class-members.mdx} +4 -1
- package/docs/rules/{no-duplicate-enum-values.md → no-duplicate-enum-values.mdx} +10 -4
- package/docs/rules/{no-duplicate-imports.md → no-duplicate-imports.mdx} +1 -1
- package/docs/rules/{no-duplicate-type-constituents.md → no-duplicate-type-constituents.mdx} +10 -4
- package/docs/rules/{no-dynamic-delete.md → no-dynamic-delete.mdx} +10 -4
- package/docs/rules/{no-empty-function.md → no-empty-function.mdx} +3 -0
- package/docs/rules/{no-empty-interface.md → no-empty-interface.mdx} +9 -5
- package/docs/rules/{no-explicit-any.md → no-explicit-any.mdx} +15 -9
- package/docs/rules/{no-extra-non-null-assertion.md → no-extra-non-null-assertion.mdx} +11 -5
- package/docs/rules/{no-extra-parens.md → no-extra-parens.mdx} +3 -0
- package/docs/rules/{no-extra-semi.md → no-extra-semi.mdx} +3 -0
- package/docs/rules/{no-extraneous-class.md → no-extraneous-class.mdx} +61 -33
- package/docs/rules/{no-floating-promises.md → no-floating-promises.mdx} +12 -6
- package/docs/rules/{no-for-in-array.md → no-for-in-array.mdx} +10 -4
- package/docs/rules/{no-implied-eval.md → no-implied-eval.mdx} +10 -4
- package/docs/rules/{no-import-type-side-effects.md → no-import-type-side-effects.mdx} +12 -6
- package/docs/rules/{no-inferrable-types.md → no-inferrable-types.mdx} +9 -5
- package/docs/rules/{no-invalid-this.md → no-invalid-this.mdx} +4 -1
- package/docs/rules/{no-invalid-void-type.md → no-invalid-void-type.mdx} +10 -4
- package/docs/rules/{no-loop-func.md → no-loop-func.mdx} +3 -0
- package/docs/rules/{no-loss-of-precision.md → no-loss-of-precision.mdx} +3 -0
- package/docs/rules/{no-magic-numbers.md → no-magic-numbers.mdx} +3 -0
- package/docs/rules/{no-meaningless-void-operator.md → no-meaningless-void-operator.mdx} +12 -4
- package/docs/rules/{no-misused-new.md → no-misused-new.mdx} +10 -4
- package/docs/rules/{no-misused-promises.md → no-misused-promises.mdx} +24 -16
- package/docs/rules/{no-mixed-enums.md → no-mixed-enums.mdx} +14 -6
- package/docs/rules/{no-namespace.md → no-namespace.mdx} +29 -18
- package/docs/rules/{no-non-null-asserted-nullish-coalescing.md → no-non-null-asserted-nullish-coalescing.mdx} +10 -4
- package/docs/rules/{no-non-null-asserted-optional-chain.md → no-non-null-asserted-optional-chain.mdx} +10 -4
- package/docs/rules/{no-non-null-assertion.md → no-non-null-assertion.mdx} +10 -4
- package/docs/rules/{no-redeclare.md → no-redeclare.mdx} +4 -1
- package/docs/rules/{no-redundant-type-constituents.md → no-redundant-type-constituents.mdx} +10 -4
- package/docs/rules/{no-require-imports.md → no-require-imports.mdx} +18 -9
- package/docs/rules/{no-restricted-imports.md → no-restricted-imports.mdx} +10 -4
- package/docs/rules/{no-shadow.md → no-shadow.mdx} +4 -1
- package/docs/rules/{no-this-alias.md → no-this-alias.mdx} +24 -12
- package/docs/rules/{no-throw-literal.md → no-throw-literal.mdx} +11 -5
- package/docs/rules/{no-type-alias.md → no-type-alias.mdx} +5 -2
- package/docs/rules/{no-unnecessary-boolean-literal-compare.md → no-unnecessary-boolean-literal-compare.mdx} +24 -12
- package/docs/rules/{no-unnecessary-condition.md → no-unnecessary-condition.mdx} +11 -5
- package/docs/rules/{no-unnecessary-qualifier.md → no-unnecessary-qualifier.mdx} +10 -4
- package/docs/rules/{no-unnecessary-type-arguments.md → no-unnecessary-type-arguments.mdx} +10 -4
- package/docs/rules/{no-unnecessary-type-assertion.md → no-unnecessary-type-assertion.mdx} +10 -4
- package/docs/rules/{no-unnecessary-type-constraint.md → no-unnecessary-type-constraint.mdx} +10 -4
- package/docs/rules/{no-unsafe-argument.md → no-unsafe-argument.mdx} +14 -10
- package/docs/rules/{no-unsafe-assignment.md → no-unsafe-assignment.mdx} +14 -10
- package/docs/rules/{no-unsafe-call.md → no-unsafe-call.mdx} +15 -9
- package/docs/rules/{no-unsafe-declaration-merging.md → no-unsafe-declaration-merging.mdx} +10 -4
- package/docs/rules/{no-unsafe-enum-comparison.md → no-unsafe-enum-comparison.mdx} +9 -5
- package/docs/rules/{no-unsafe-member-access.md → no-unsafe-member-access.mdx} +15 -9
- package/docs/rules/{no-unsafe-return.md → no-unsafe-return.mdx} +14 -10
- package/docs/rules/{no-unsafe-unary-minus.md → no-unsafe-unary-minus.mdx} +11 -5
- package/docs/rules/{no-unused-expressions.md → no-unused-expressions.mdx} +3 -0
- package/docs/rules/{no-unused-vars.md → no-unused-vars.mdx} +3 -0
- package/docs/rules/{no-use-before-define.md → no-use-before-define.mdx} +10 -4
- package/docs/rules/{no-useless-constructor.md → no-useless-constructor.mdx} +3 -0
- package/docs/rules/{no-useless-empty-export.md → no-useless-empty-export.mdx} +10 -4
- package/docs/rules/{no-useless-template-literals.md → no-useless-template-literals.mdx} +10 -6
- package/docs/rules/{no-var-requires.md → no-var-requires.mdx} +18 -9
- package/docs/rules/{non-nullable-type-assertion-style.md → non-nullable-type-assertion-style.mdx} +10 -4
- package/docs/rules/{object-curly-spacing.md → object-curly-spacing.mdx} +3 -0
- package/docs/rules/{padding-line-between-statements.md → padding-line-between-statements.mdx} +3 -0
- package/docs/rules/{parameter-properties.md → parameter-properties.mdx} +66 -36
- package/docs/rules/{prefer-as-const.md → prefer-as-const.mdx} +9 -5
- package/docs/rules/{prefer-destructuring.md → prefer-destructuring.mdx} +23 -12
- package/docs/rules/{prefer-enum-initializers.md → prefer-enum-initializers.mdx} +10 -4
- package/docs/rules/{prefer-find.md → prefer-find.mdx} +10 -4
- package/docs/rules/{prefer-for-of.md → prefer-for-of.mdx} +11 -5
- package/docs/rules/{prefer-function-type.md → prefer-function-type.mdx} +10 -4
- package/docs/rules/{prefer-includes.md → prefer-includes.mdx} +11 -5
- package/docs/rules/{prefer-literal-enum-member.md → prefer-literal-enum-member.mdx} +16 -9
- package/docs/rules/{prefer-namespace-keyword.md → prefer-namespace-keyword.mdx} +9 -5
- package/docs/rules/{prefer-nullish-coalescing.md → prefer-nullish-coalescing.mdx} +3 -0
- package/docs/rules/{prefer-optional-chain.md → prefer-optional-chain.mdx} +58 -33
- package/docs/rules/{prefer-promise-reject-errors.md → prefer-promise-reject-errors.mdx} +10 -4
- package/docs/rules/{prefer-readonly-parameter-types.md → prefer-readonly-parameter-types.mdx} +36 -22
- package/docs/rules/{prefer-readonly.md → prefer-readonly.mdx} +17 -8
- package/docs/rules/{prefer-reduce-type-parameter.md → prefer-reduce-type-parameter.mdx} +10 -4
- package/docs/rules/{prefer-regexp-exec.md → prefer-regexp-exec.mdx} +10 -4
- package/docs/rules/{prefer-return-this-type.md → prefer-return-this-type.mdx} +10 -4
- package/docs/rules/{prefer-string-starts-ends-with.md → prefer-string-starts-ends-with.mdx} +9 -5
- package/docs/rules/{prefer-ts-expect-error.md → prefer-ts-expect-error.mdx} +10 -4
- package/docs/rules/{promise-function-async.md → promise-function-async.mdx} +24 -12
- package/docs/rules/{quotes.md → quotes.mdx} +3 -0
- package/docs/rules/{require-array-sort-compare.md → require-array-sort-compare.mdx} +17 -8
- package/docs/rules/{require-await.md → require-await.mdx} +3 -0
- package/docs/rules/{restrict-plus-operands.md → restrict-plus-operands.mdx} +54 -30
- package/docs/rules/{restrict-template-expressions.md → restrict-template-expressions.mdx} +13 -7
- package/docs/rules/{return-await.md → return-await.mdx} +24 -12
- package/docs/rules/{semi.md → semi.mdx} +4 -1
- package/docs/rules/{sort-type-constituents.md → sort-type-constituents.mdx} +31 -16
- package/docs/rules/{space-before-blocks.md → space-before-blocks.mdx} +10 -4
- package/docs/rules/{space-before-function-paren.md → space-before-function-paren.mdx} +3 -0
- package/docs/rules/{space-infix-ops.md → space-infix-ops.mdx} +3 -0
- package/docs/rules/{strict-boolean-expressions.md → strict-boolean-expressions.mdx} +11 -5
- package/docs/rules/{switch-exhaustiveness-check.md → switch-exhaustiveness-check.mdx} +19 -14
- package/docs/rules/{triple-slash-reference.md → triple-slash-reference.mdx} +30 -17
- package/docs/rules/{type-annotation-spacing.md → type-annotation-spacing.mdx} +49 -31
- package/docs/rules/{typedef.md → typedef.mdx} +60 -33
- package/docs/rules/{unbound-method.md → unbound-method.mdx} +12 -6
- package/docs/rules/{unified-signatures.md → unified-signatures.mdx} +18 -9
- package/docs/rules/use-unknown-in-catch-callback-variable.mdx +84 -0
- package/package.json +7 -7
- /package/docs/rules/{no-parameter-properties.md → no-parameter-properties.mdx} +0 -0
|
@@ -32,7 +32,19 @@ exports.default = (0, util_1.createRule)({
|
|
|
32
32
|
type: 'problem',
|
|
33
33
|
docs: {
|
|
34
34
|
description: 'Enforce template literal expressions to be of `string` type',
|
|
35
|
-
recommended:
|
|
35
|
+
recommended: {
|
|
36
|
+
recommended: true,
|
|
37
|
+
strict: [
|
|
38
|
+
{
|
|
39
|
+
allowAny: false,
|
|
40
|
+
allowBoolean: false,
|
|
41
|
+
allowNullish: false,
|
|
42
|
+
allowNumber: false,
|
|
43
|
+
allowRegExp: false,
|
|
44
|
+
allowNever: false,
|
|
45
|
+
},
|
|
46
|
+
],
|
|
47
|
+
},
|
|
36
48
|
requiresTypeChecking: true,
|
|
37
49
|
},
|
|
38
50
|
messages: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"restrict-template-expressions.js","sourceRoot":"","sources":["../../src/rules/restrict-template-expressions.ts"],"names":[],"mappings":";;AACA,oDAA0D;AAE1D,2CAAuC;AAEvC,kCAQiB;AAQjB,MAAM,YAAY,GAChB,CAAC,YAAuB,EAAgB,EAAE,CAC1C,IAAI,CAAC,EAAE,CACL,IAAA,oBAAa,EAAC,IAAI,EAAE,YAAY,CAAC,CAAC;AAEtC,MAAM,aAAa,GAAG,CACpB;IACE,CAAC,KAAK,EAAE,oBAAa,CAAC;IACtB;QACE,OAAO;QACP,CAAC,IAAI,EAAE,OAAO,EAAE,oBAAoB,EAAW,EAAE,CAC/C,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC;YACzB,oEAAoE;YACpE,oBAAoB,CAAC,IAAI,CAAC,kBAAkB,EAAG,CAAC;KACnD;IACD,6EAA6E;IAC7E,CAAC,SAAS,EAAE,YAAY,CAAC,sBAAS,CAAC,WAAW,CAAC,CAAC;IAChD,CAAC,SAAS,EAAE,YAAY,CAAC,sBAAS,CAAC,IAAI,GAAG,sBAAS,CAAC,SAAS,CAAC,CAAC;IAC/D,CAAC,QAAQ,EAAE,YAAY,CAAC,sBAAS,CAAC,UAAU,GAAG,sBAAS,CAAC,UAAU,CAAC,CAAC;IACrE;QACE,QAAQ;QACR,CAAC,IAAI,EAAE,OAAO,EAAW,EAAE,CAAC,IAAA,kBAAW,EAAC,OAAO,EAAE,IAAI,CAAC,KAAK,QAAQ;KACpE;IACD,CAAC,OAAO,EAAE,sBAAe,CAAC;CACQ,CACrC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;IACzB,IAAI;IACJ,MAAM,EAAE,QAAQ,IAAI,EAAW;IAC/B,MAAM;CACP,CAAC,CAAC,CAAC;AAOJ,kBAAe,IAAA,iBAAU,EAAqB;IAC5C,IAAI,EAAE,+BAA+B;IACrC,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EACT,6DAA6D;YAC/D,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"restrict-template-expressions.js","sourceRoot":"","sources":["../../src/rules/restrict-template-expressions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
const utils_1 = require("@typescript-eslint/utils");
|
|
27
|
+
const tsutils = __importStar(require("ts-api-utils"));
|
|
28
|
+
const util_1 = require("../util");
|
|
29
|
+
const useUnknownMessageBase = 'Prefer the safe `: unknown` for a catch callback variable.';
|
|
30
|
+
exports.default = (0, util_1.createRule)({
|
|
31
|
+
name: 'use-unknown-in-catch-callback-variable',
|
|
32
|
+
meta: {
|
|
33
|
+
docs: {
|
|
34
|
+
description: 'Enforce typing arguments in `.catch()` callbacks as `unknown`',
|
|
35
|
+
requiresTypeChecking: true,
|
|
36
|
+
recommended: 'strict',
|
|
37
|
+
},
|
|
38
|
+
type: 'suggestion',
|
|
39
|
+
messages: {
|
|
40
|
+
useUnknown: useUnknownMessageBase,
|
|
41
|
+
useUnknownArrayDestructuringPattern: useUnknownMessageBase + ' The thrown error may not be iterable.',
|
|
42
|
+
useUnknownObjectDestructuringPattern: useUnknownMessageBase +
|
|
43
|
+
' The thrown error may be nullable, or may not have the expected shape.',
|
|
44
|
+
useUnknownSpreadArgs: useUnknownMessageBase +
|
|
45
|
+
' The argument list may contain a handler that does not use `unknown` for the catch callback variable.',
|
|
46
|
+
addUnknownTypeAnnotationSuggestion: 'Add an explicit `: unknown` type annotation to the catch variable.',
|
|
47
|
+
addUnknownRestTypeAnnotationSuggestion: 'Add an explicit `: [unknown]` type annotation to the catch rest variable.',
|
|
48
|
+
wrongTypeAnnotationSuggestion: 'Change existing type annotation to `: unknown`.',
|
|
49
|
+
wrongRestTypeAnnotationSuggestion: 'Change existing type annotation to `: [unknown]`.',
|
|
50
|
+
},
|
|
51
|
+
fixable: 'code',
|
|
52
|
+
schema: [],
|
|
53
|
+
hasSuggestions: true,
|
|
54
|
+
},
|
|
55
|
+
defaultOptions: [],
|
|
56
|
+
create(context) {
|
|
57
|
+
const services = (0, util_1.getParserServices)(context);
|
|
58
|
+
const checker = services.program.getTypeChecker();
|
|
59
|
+
function isPromiseCatchAccess(node) {
|
|
60
|
+
if (!(node.type === utils_1.AST_NODE_TYPES.MemberExpression &&
|
|
61
|
+
isStaticMemberAccessOfValue(node, 'catch'))) {
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
const objectTsNode = services.esTreeNodeToTSNodeMap.get(node.object);
|
|
65
|
+
const tsNode = services.esTreeNodeToTSNodeMap.get(node);
|
|
66
|
+
return tsutils.isThenableType(checker, tsNode, checker.getTypeAtLocation(objectTsNode));
|
|
67
|
+
}
|
|
68
|
+
function isFlaggableHandlerType(type) {
|
|
69
|
+
for (const unionPart of tsutils.unionTypeParts(type)) {
|
|
70
|
+
const callSignatures = tsutils.getCallSignaturesOfType(unionPart);
|
|
71
|
+
if (callSignatures.length === 0) {
|
|
72
|
+
// Ignore any non-function components to the type. Those are not this rule's problem.
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
for (const callSignature of callSignatures) {
|
|
76
|
+
const firstParam = callSignature.parameters.at(0);
|
|
77
|
+
if (!firstParam) {
|
|
78
|
+
// it's not an issue if there's no catch variable at all.
|
|
79
|
+
continue;
|
|
80
|
+
}
|
|
81
|
+
let firstParamType = checker.getTypeOfSymbol(firstParam);
|
|
82
|
+
const decl = firstParam.valueDeclaration;
|
|
83
|
+
if (decl != null && (0, util_1.isRestParameterDeclaration)(decl)) {
|
|
84
|
+
if (checker.isArrayType(firstParamType)) {
|
|
85
|
+
firstParamType = checker.getTypeArguments(firstParamType)[0];
|
|
86
|
+
}
|
|
87
|
+
else if (checker.isTupleType(firstParamType)) {
|
|
88
|
+
firstParamType = checker.getTypeArguments(firstParamType)[0];
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
// a rest arg that's not an array or tuple should definitely be flagged.
|
|
92
|
+
return true;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
if (!tsutils.isIntrinsicUnknownType(firstParamType)) {
|
|
96
|
+
return true;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
return false;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* If passed an ordinary expression, this will check it as expected.
|
|
104
|
+
*
|
|
105
|
+
* If passed a spread element, it treats it as the union of unwrapped array/tuple type.
|
|
106
|
+
*/
|
|
107
|
+
function shouldFlagArgument(node) {
|
|
108
|
+
const argument = services.esTreeNodeToTSNodeMap.get(node);
|
|
109
|
+
const typeOfArgument = checker.getTypeAtLocation(argument);
|
|
110
|
+
return isFlaggableHandlerType(typeOfArgument);
|
|
111
|
+
}
|
|
112
|
+
function shouldFlagMultipleSpreadArgs(argumentsList) {
|
|
113
|
+
// One could try to be clever about unpacking fixed length tuples and stuff
|
|
114
|
+
// like that, but there's no need, since this is all invalid use of `.catch`
|
|
115
|
+
// anyway at the end of the day. Instead, we'll just check whether any of the
|
|
116
|
+
// possible args types would violate the rule on its own.
|
|
117
|
+
return argumentsList.some(argument => shouldFlagArgument(argument));
|
|
118
|
+
}
|
|
119
|
+
function shouldFlagSingleSpreadArg(node) {
|
|
120
|
+
const spreadArgs = services.esTreeNodeToTSNodeMap.get(node.argument);
|
|
121
|
+
const spreadArgsType = checker.getTypeAtLocation(spreadArgs);
|
|
122
|
+
if (checker.isArrayType(spreadArgsType)) {
|
|
123
|
+
const arrayType = checker.getTypeArguments(spreadArgsType)[0];
|
|
124
|
+
return isFlaggableHandlerType(arrayType);
|
|
125
|
+
}
|
|
126
|
+
if (checker.isTupleType(spreadArgsType)) {
|
|
127
|
+
const firstType = checker.getTypeArguments(spreadArgsType).at(0);
|
|
128
|
+
if (!firstType) {
|
|
129
|
+
// empty spread args. Suspect code, but not a problem for this rule.
|
|
130
|
+
return false;
|
|
131
|
+
}
|
|
132
|
+
return isFlaggableHandlerType(firstType);
|
|
133
|
+
}
|
|
134
|
+
return true;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Analyzes the syntax of the catch argument and makes a best effort to pinpoint
|
|
138
|
+
* why it's reporting, and to come up with a suggested fix if possible.
|
|
139
|
+
*
|
|
140
|
+
* This function is explicitly operating under the assumption that the
|
|
141
|
+
* rule _is reporting_, so it is not guaranteed to be sound to call otherwise.
|
|
142
|
+
*/
|
|
143
|
+
function refineReportForNormalArgumentIfPossible(argument) {
|
|
144
|
+
// Only know how to be helpful if a function literal has been provided.
|
|
145
|
+
if (!(argument.type === utils_1.AST_NODE_TYPES.ArrowFunctionExpression ||
|
|
146
|
+
argument.type === utils_1.AST_NODE_TYPES.FunctionExpression)) {
|
|
147
|
+
return undefined;
|
|
148
|
+
}
|
|
149
|
+
const catchVariableOuterWithIncorrectTypes = (0, util_1.nullThrows)(argument.params.at(0), 'There should have been at least one parameter for the rule to have flagged.');
|
|
150
|
+
// Function expressions can't have parameter properties; those only exist in constructors.
|
|
151
|
+
const catchVariableOuter = catchVariableOuterWithIncorrectTypes;
|
|
152
|
+
const catchVariableInner = catchVariableOuter.type === utils_1.AST_NODE_TYPES.AssignmentPattern
|
|
153
|
+
? catchVariableOuter.left
|
|
154
|
+
: catchVariableOuter;
|
|
155
|
+
switch (catchVariableInner.type) {
|
|
156
|
+
case utils_1.AST_NODE_TYPES.Identifier: {
|
|
157
|
+
const catchVariableTypeAnnotation = catchVariableInner.typeAnnotation;
|
|
158
|
+
if (catchVariableTypeAnnotation == null) {
|
|
159
|
+
return {
|
|
160
|
+
node: catchVariableOuter,
|
|
161
|
+
suggest: [
|
|
162
|
+
{
|
|
163
|
+
messageId: 'addUnknownTypeAnnotationSuggestion',
|
|
164
|
+
fix: (fixer) => {
|
|
165
|
+
if (argument.type ===
|
|
166
|
+
utils_1.AST_NODE_TYPES.ArrowFunctionExpression &&
|
|
167
|
+
(0, util_1.isParenlessArrowFunction)(argument, context.sourceCode)) {
|
|
168
|
+
return [
|
|
169
|
+
fixer.insertTextBefore(catchVariableInner, '('),
|
|
170
|
+
fixer.insertTextAfter(catchVariableInner, ': unknown)'),
|
|
171
|
+
];
|
|
172
|
+
}
|
|
173
|
+
return [
|
|
174
|
+
fixer.insertTextAfter(catchVariableInner, ': unknown'),
|
|
175
|
+
];
|
|
176
|
+
},
|
|
177
|
+
},
|
|
178
|
+
],
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
return {
|
|
182
|
+
node: catchVariableOuter,
|
|
183
|
+
suggest: [
|
|
184
|
+
{
|
|
185
|
+
messageId: 'wrongTypeAnnotationSuggestion',
|
|
186
|
+
fix: (fixer) => fixer.replaceText(catchVariableTypeAnnotation, ': unknown'),
|
|
187
|
+
},
|
|
188
|
+
],
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
case utils_1.AST_NODE_TYPES.ArrayPattern: {
|
|
192
|
+
return {
|
|
193
|
+
node: catchVariableOuter,
|
|
194
|
+
messageId: 'useUnknownArrayDestructuringPattern',
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
case utils_1.AST_NODE_TYPES.ObjectPattern: {
|
|
198
|
+
return {
|
|
199
|
+
node: catchVariableOuter,
|
|
200
|
+
messageId: 'useUnknownObjectDestructuringPattern',
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
case utils_1.AST_NODE_TYPES.RestElement: {
|
|
204
|
+
const catchVariableTypeAnnotation = catchVariableInner.typeAnnotation;
|
|
205
|
+
if (catchVariableTypeAnnotation == null) {
|
|
206
|
+
return {
|
|
207
|
+
node: catchVariableOuter,
|
|
208
|
+
suggest: [
|
|
209
|
+
{
|
|
210
|
+
messageId: 'addUnknownRestTypeAnnotationSuggestion',
|
|
211
|
+
fix: (fixer) => fixer.insertTextAfter(catchVariableInner, ': [unknown]'),
|
|
212
|
+
},
|
|
213
|
+
],
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
return {
|
|
217
|
+
node: catchVariableOuter,
|
|
218
|
+
suggest: [
|
|
219
|
+
{
|
|
220
|
+
messageId: 'wrongRestTypeAnnotationSuggestion',
|
|
221
|
+
fix: (fixer) => fixer.replaceText(catchVariableTypeAnnotation, ': [unknown]'),
|
|
222
|
+
},
|
|
223
|
+
],
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
return {
|
|
229
|
+
CallExpression(node) {
|
|
230
|
+
if (node.arguments.length === 0 || !isPromiseCatchAccess(node.callee)) {
|
|
231
|
+
return;
|
|
232
|
+
}
|
|
233
|
+
const firstArgument = node.arguments[0];
|
|
234
|
+
// Deal with some special cases around spread element args.
|
|
235
|
+
// promise.catch(...handlers), promise.catch(...handlers, ...moreHandlers).
|
|
236
|
+
if (firstArgument.type === utils_1.AST_NODE_TYPES.SpreadElement) {
|
|
237
|
+
if (node.arguments.length === 1) {
|
|
238
|
+
if (shouldFlagSingleSpreadArg(firstArgument)) {
|
|
239
|
+
context.report({
|
|
240
|
+
node: firstArgument,
|
|
241
|
+
messageId: 'useUnknown',
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
else if (shouldFlagMultipleSpreadArgs(node.arguments)) {
|
|
246
|
+
context.report({
|
|
247
|
+
node,
|
|
248
|
+
messageId: 'useUnknownSpreadArgs',
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
return;
|
|
252
|
+
}
|
|
253
|
+
// First argument is an "ordinary" argument (i.e. not a spread argument)
|
|
254
|
+
// promise.catch(f), promise.catch(() => {}), promise.catch(<expression>, <<other-args>>)
|
|
255
|
+
if (shouldFlagArgument(firstArgument)) {
|
|
256
|
+
// We are now guaranteed to report, but we have a bit of work to do
|
|
257
|
+
// to determine exactly where, and whether we can fix it.
|
|
258
|
+
const overrides = refineReportForNormalArgumentIfPossible(firstArgument);
|
|
259
|
+
context.report({
|
|
260
|
+
node: firstArgument,
|
|
261
|
+
messageId: 'useUnknown',
|
|
262
|
+
...overrides,
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
},
|
|
266
|
+
};
|
|
267
|
+
},
|
|
268
|
+
});
|
|
269
|
+
/**
|
|
270
|
+
* Answers whether the member expression looks like
|
|
271
|
+
* `x.memberName`, `x['memberName']`,
|
|
272
|
+
* or even `const mn = 'memberName'; x[mn]` (or optional variants thereof).
|
|
273
|
+
*/
|
|
274
|
+
function isStaticMemberAccessOfValue(memberExpression, value, scope) {
|
|
275
|
+
if (!memberExpression.computed) {
|
|
276
|
+
// x.memberName case.
|
|
277
|
+
return memberExpression.property.name === value;
|
|
278
|
+
}
|
|
279
|
+
// x['memberName'] cases.
|
|
280
|
+
const staticValueResult = (0, util_1.getStaticValue)(memberExpression.property, scope);
|
|
281
|
+
return staticValueResult != null && value === staticValueResult.value;
|
|
282
|
+
}
|
|
283
|
+
//# sourceMappingURL=use-unknown-in-catch-callback-variable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-unknown-in-catch-callback-variable.js","sourceRoot":"","sources":["../../src/rules/use-unknown-in-catch-callback-variable.ts"],"names":[],"mappings":"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"}
|
package/dist/util/misc.js
CHANGED
|
@@ -26,10 +26,11 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
26
26
|
return result;
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.findLastIndex = exports.upperCaseFirst = exports.typeNodeRequiresParentheses = exports.MemberNameType = exports.isDefinitionFile = exports.getNameFromMember = exports.getNameFromIndexSignature = exports.getEnumNames = exports.formatWordList = exports.findFirstResult = exports.arraysAreEqual = exports.arrayGroupByToMap = void 0;
|
|
29
|
+
exports.findLastIndex = exports.upperCaseFirst = exports.typeNodeRequiresParentheses = exports.MemberNameType = exports.isParenlessArrowFunction = exports.isRestParameterDeclaration = exports.isDefinitionFile = exports.getNameFromMember = exports.getNameFromIndexSignature = exports.getEnumNames = exports.formatWordList = exports.findFirstResult = exports.arraysAreEqual = exports.arrayGroupByToMap = void 0;
|
|
30
30
|
const type_utils_1 = require("@typescript-eslint/type-utils");
|
|
31
31
|
const utils_1 = require("@typescript-eslint/utils");
|
|
32
32
|
const ts = __importStar(require("typescript"));
|
|
33
|
+
const astUtils_1 = require("./astUtils");
|
|
33
34
|
const DEFINITION_EXTENSIONS = [
|
|
34
35
|
ts.Extension.Dts,
|
|
35
36
|
ts.Extension.Dcts,
|
|
@@ -186,4 +187,12 @@ function typeNodeRequiresParentheses(node, text) {
|
|
|
186
187
|
(node.type === utils_1.AST_NODE_TYPES.TSIntersectionType && text.startsWith('&')));
|
|
187
188
|
}
|
|
188
189
|
exports.typeNodeRequiresParentheses = typeNodeRequiresParentheses;
|
|
190
|
+
function isRestParameterDeclaration(decl) {
|
|
191
|
+
return ts.isParameter(decl) && decl.dotDotDotToken != null;
|
|
192
|
+
}
|
|
193
|
+
exports.isRestParameterDeclaration = isRestParameterDeclaration;
|
|
194
|
+
function isParenlessArrowFunction(node, sourceCode) {
|
|
195
|
+
return (node.params.length === 1 && !(0, astUtils_1.isParenthesized)(node.params[0], sourceCode));
|
|
196
|
+
}
|
|
197
|
+
exports.isParenlessArrowFunction = isParenlessArrowFunction;
|
|
189
198
|
//# sourceMappingURL=misc.js.map
|
package/dist/util/misc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"misc.js","sourceRoot":"","sources":["../../src/util/misc.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,8DAAgE;AAEhE,oDAA0D;AAC1D,+CAAiC;AAEjC,MAAM,qBAAqB,GAAG;IAC5B,EAAE,CAAC,SAAS,CAAC,GAAG;IAChB,EAAE,CAAC,SAAS,CAAC,IAAI;IACjB,EAAE,CAAC,SAAS,CAAC,IAAI;CACT,CAAC;AACX;;GAEG;AACH,SAAS,gBAAgB,CAAC,QAAgB;IACxC,MAAM,aAAa,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IAC7C,KAAK,MAAM,aAAa,IAAI,qBAAqB,EAAE,CAAC;QAClD,IAAI,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;
|
|
1
|
+
{"version":3,"file":"misc.js","sourceRoot":"","sources":["../../src/util/misc.ts"],"names":[],"mappings":"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"}
|
package/docs/rules/TEMPLATE.md
CHANGED
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
description: '<Description from rule metadata here>'
|
|
3
3
|
---
|
|
4
4
|
|
|
5
|
+
import Tabs from '@theme/Tabs';
|
|
6
|
+
import TabItem from '@theme/TabItem';
|
|
7
|
+
|
|
5
8
|
> 🛑 This file is source code, not the primary documentation location! 🛑
|
|
6
9
|
>
|
|
7
10
|
> See **https://typescript-eslint.io/rules/RULE_NAME_REPLACEME** for documentation.
|
|
@@ -10,20 +13,23 @@ description: '<Description from rule metadata here>'
|
|
|
10
13
|
|
|
11
14
|
To fill out: tell us more about this rule.
|
|
12
15
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
### ❌ Incorrect
|
|
16
|
+
<Tabs>
|
|
17
|
+
<TabItem value="❌ Incorrect">
|
|
16
18
|
|
|
17
19
|
```ts
|
|
18
20
|
// To fill out: incorrect code
|
|
19
21
|
```
|
|
20
22
|
|
|
21
|
-
|
|
23
|
+
</TabItem>
|
|
24
|
+
<TabItem value="✅ Correct">
|
|
22
25
|
|
|
23
26
|
```ts
|
|
24
27
|
// To fill out: correct code
|
|
25
28
|
```
|
|
26
29
|
|
|
30
|
+
</TabItem>
|
|
31
|
+
</Tabs>
|
|
32
|
+
|
|
27
33
|
## When Not To Use It
|
|
28
34
|
|
|
29
35
|
To fill out: why wouldn't you want to use this rule?
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
description: 'Require that function overload signatures be consecutive.'
|
|
3
3
|
---
|
|
4
4
|
|
|
5
|
+
import Tabs from '@theme/Tabs';
|
|
6
|
+
import TabItem from '@theme/TabItem';
|
|
7
|
+
|
|
5
8
|
> 🛑 This file is source code, not the primary documentation location! 🛑
|
|
6
9
|
>
|
|
7
10
|
> See **https://typescript-eslint.io/rules/adjacent-overload-signatures** for documentation.
|
|
@@ -12,9 +15,8 @@ If Signatures placed elsewhere in the type are easier to be missed by future dev
|
|
|
12
15
|
|
|
13
16
|
## Examples
|
|
14
17
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
### ❌ Incorrect
|
|
18
|
+
<Tabs>
|
|
19
|
+
<TabItem value="❌ Incorrect">
|
|
18
20
|
|
|
19
21
|
```ts
|
|
20
22
|
declare namespace Foo {
|
|
@@ -51,7 +53,8 @@ export function bar(): void;
|
|
|
51
53
|
export function foo(sn: string | number): void;
|
|
52
54
|
```
|
|
53
55
|
|
|
54
|
-
|
|
56
|
+
</TabItem>
|
|
57
|
+
<TabItem value="✅ Correct">
|
|
55
58
|
|
|
56
59
|
```ts
|
|
57
60
|
declare namespace Foo {
|
|
@@ -88,6 +91,9 @@ export function foo(n: number): void;
|
|
|
88
91
|
export function foo(sn: string | number): void;
|
|
89
92
|
```
|
|
90
93
|
|
|
94
|
+
</TabItem>
|
|
95
|
+
</Tabs>
|
|
96
|
+
|
|
91
97
|
## When Not To Use It
|
|
92
98
|
|
|
93
99
|
It can sometimes be useful to place overload signatures alongside other meaningful parts of a type.
|
|
@@ -96,4 +102,4 @@ You might consider using [ESLint disable comments](https://eslint.org/docs/lates
|
|
|
96
102
|
|
|
97
103
|
## Related To
|
|
98
104
|
|
|
99
|
-
- [`unified-signatures`](./unified-signatures.
|
|
105
|
+
- [`unified-signatures`](./unified-signatures.mdx)
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
description: 'Require consistently using either `T[]` or `Array<T>` for arrays.'
|
|
3
3
|
---
|
|
4
4
|
|
|
5
|
+
import Tabs from '@theme/Tabs';
|
|
6
|
+
import TabItem from '@theme/TabItem';
|
|
7
|
+
|
|
5
8
|
> 🛑 This file is source code, not the primary documentation location! 🛑
|
|
6
9
|
>
|
|
7
10
|
> See **https://typescript-eslint.io/rules/array-type** for documentation.
|
|
@@ -18,50 +21,55 @@ The default config will enforce that all mutable and readonly arrays use the `'a
|
|
|
18
21
|
|
|
19
22
|
Always use `T[]` or `readonly T[]` for all array types.
|
|
20
23
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
#### ❌ Incorrect
|
|
24
|
+
<Tabs>
|
|
25
|
+
<TabItem value="❌ Incorrect">
|
|
24
26
|
|
|
25
27
|
```ts option='{ "default": "array" }'
|
|
26
28
|
const x: Array<string> = ['a', 'b'];
|
|
27
29
|
const y: ReadonlyArray<string> = ['a', 'b'];
|
|
28
30
|
```
|
|
29
31
|
|
|
30
|
-
|
|
32
|
+
</TabItem>
|
|
33
|
+
<TabItem value="✅ Correct">
|
|
31
34
|
|
|
32
35
|
```ts option='{ "default": "array" }'
|
|
33
36
|
const x: string[] = ['a', 'b'];
|
|
34
37
|
const y: readonly string[] = ['a', 'b'];
|
|
35
38
|
```
|
|
36
39
|
|
|
40
|
+
</TabItem>
|
|
41
|
+
</Tabs>
|
|
42
|
+
|
|
37
43
|
### `"generic"`
|
|
38
44
|
|
|
39
45
|
Always use `Array<T>` or `ReadonlyArray<T>` for all array types.
|
|
40
46
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
#### ❌ Incorrect
|
|
47
|
+
<Tabs>
|
|
48
|
+
<TabItem value="❌ Incorrect">
|
|
44
49
|
|
|
45
50
|
```ts option='{ "default": "generic" }'
|
|
46
51
|
const x: string[] = ['a', 'b'];
|
|
47
52
|
const y: readonly string[] = ['a', 'b'];
|
|
48
53
|
```
|
|
49
54
|
|
|
50
|
-
|
|
55
|
+
</TabItem>
|
|
56
|
+
<TabItem value="✅ Correct">
|
|
51
57
|
|
|
52
58
|
```ts option='{ "default": "generic" }'
|
|
53
59
|
const x: Array<string> = ['a', 'b'];
|
|
54
60
|
const y: ReadonlyArray<string> = ['a', 'b'];
|
|
55
61
|
```
|
|
56
62
|
|
|
63
|
+
</TabItem>
|
|
64
|
+
</Tabs>
|
|
65
|
+
|
|
57
66
|
### `"array-simple"`
|
|
58
67
|
|
|
59
68
|
Use `T[]` or `readonly T[]` for simple types (i.e. types which are just primitive names or type references).
|
|
60
69
|
Use `Array<T>` or `ReadonlyArray<T>` for all other types (union types, intersection types, object types, function types, etc).
|
|
61
70
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
#### ❌ Incorrect
|
|
71
|
+
<Tabs>
|
|
72
|
+
<TabItem value="❌ Incorrect">
|
|
65
73
|
|
|
66
74
|
```ts option='{ "default": "array-simple" }'
|
|
67
75
|
const a: (string | number)[] = ['a', 'b'];
|
|
@@ -72,7 +80,8 @@ const e: Array<string> = ['a', 'b'];
|
|
|
72
80
|
const f: ReadonlyArray<string> = ['a', 'b'];
|
|
73
81
|
```
|
|
74
82
|
|
|
75
|
-
|
|
83
|
+
</TabItem>
|
|
84
|
+
<TabItem value="✅ Correct">
|
|
76
85
|
|
|
77
86
|
```ts option='{ "default": "array-simple" }'
|
|
78
87
|
const a: Array<string | number> = ['a', 'b'];
|
|
@@ -83,6 +92,9 @@ const e: string[] = ['a', 'b'];
|
|
|
83
92
|
const f: readonly string[] = ['a', 'b'];
|
|
84
93
|
```
|
|
85
94
|
|
|
95
|
+
</TabItem>
|
|
96
|
+
</Tabs>
|
|
97
|
+
|
|
86
98
|
## Combination Matrix
|
|
87
99
|
|
|
88
100
|
This matrix lists all possible option combinations and their expected results for different types of Arrays.
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
description: 'Disallow awaiting a value that is not a Thenable.'
|
|
3
3
|
---
|
|
4
4
|
|
|
5
|
+
import Tabs from '@theme/Tabs';
|
|
6
|
+
import TabItem from '@theme/TabItem';
|
|
7
|
+
|
|
5
8
|
> 🛑 This file is source code, not the primary documentation location! 🛑
|
|
6
9
|
>
|
|
7
10
|
> See **https://typescript-eslint.io/rules/await-thenable** for documentation.
|
|
@@ -14,9 +17,8 @@ While doing so is valid JavaScript, it is often a programmer error, such as forg
|
|
|
14
17
|
|
|
15
18
|
## Examples
|
|
16
19
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
### ❌ Incorrect
|
|
20
|
+
<Tabs>
|
|
21
|
+
<TabItem value="❌ Incorrect">
|
|
20
22
|
|
|
21
23
|
```ts
|
|
22
24
|
await 'value';
|
|
@@ -25,7 +27,8 @@ const createValue = () => 'value';
|
|
|
25
27
|
await createValue();
|
|
26
28
|
```
|
|
27
29
|
|
|
28
|
-
|
|
30
|
+
</TabItem>
|
|
31
|
+
<TabItem value="✅ Correct">
|
|
29
32
|
|
|
30
33
|
```ts
|
|
31
34
|
await Promise.resolve('value');
|
|
@@ -34,6 +37,9 @@ const createValue = async () => 'value';
|
|
|
34
37
|
await createValue();
|
|
35
38
|
```
|
|
36
39
|
|
|
40
|
+
</TabItem>
|
|
41
|
+
</Tabs>
|
|
42
|
+
|
|
37
43
|
## When Not To Use It
|
|
38
44
|
|
|
39
45
|
If you want to allow code to `await` non-Promise values.
|