From 955d7a62b2e88d9396f7f7b6ce46da6418aea374 Mon Sep 17 00:00:00 2001 From: Josh Goldberg Date: Mon, 20 Sep 2021 17:07:56 -0400 Subject: [PATCH] chore: enabled restrict-template-expressions internally (#3854) --- .eslintrc.js | 12 ++++++++++-- .../src/rules/switch-exhaustiveness-check.ts | 2 +- packages/scope-manager/tests/fixtures.test.ts | 2 +- .../tests/util/serializers/TSESTreeNode.ts | 3 ++- .../tests/util/serializers/baseSerializer.ts | 2 +- 5 files changed, 15 insertions(+), 6 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index df695f85e94..1ef4f373c8d 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -59,13 +59,21 @@ module.exports = { '@typescript-eslint/prefer-optional-chain': 'error', '@typescript-eslint/unbound-method': 'off', '@typescript-eslint/prefer-as-const': 'error', + '@typescript-eslint/restrict-template-expressions': [ + 'error', + { + allowNumber: true, + allowBoolean: true, + allowAny: true, + allowNullish: true, + allowRegExp: true, + }, + ], '@typescript-eslint/no-unused-vars': [ 'warn', { varsIgnorePattern: '^_', argsIgnorePattern: '^_' }, ], - // TODO - enable these new recommended rules - '@typescript-eslint/restrict-template-expressions': 'off', // TODO - enable this '@typescript-eslint/naming-convention': 'off', diff --git a/packages/eslint-plugin/src/rules/switch-exhaustiveness-check.ts b/packages/eslint-plugin/src/rules/switch-exhaustiveness-check.ts index 8881473da05..7535aa6dc54 100644 --- a/packages/eslint-plugin/src/rules/switch-exhaustiveness-check.ts +++ b/packages/eslint-plugin/src/rules/switch-exhaustiveness-check.ts @@ -144,7 +144,7 @@ export default createRule({ missingBranches: missingBranchTypes .map(missingType => isTypeFlagSet(missingType, ts.TypeFlags.ESSymbolLike) - ? `typeof ${missingType.getSymbol()?.escapedName}` + ? `typeof ${missingType.getSymbol()?.escapedName as string}` : checker.typeToString(missingType), ) .join(' | '), diff --git a/packages/scope-manager/tests/fixtures.test.ts b/packages/scope-manager/tests/fixtures.test.ts index af327985df3..b504710c4cf 100644 --- a/packages/scope-manager/tests/fixtures.test.ts +++ b/packages/scope-manager/tests/fixtures.test.ts @@ -124,7 +124,7 @@ function nestDescribe( throw new Error( `Expected value for ${key} to be one of (${Array.from(type[1]).join( ' | ', - )}), but got ${value}`, + )}), but got ${value as string}`, ); } diff --git a/packages/scope-manager/tests/util/serializers/TSESTreeNode.ts b/packages/scope-manager/tests/util/serializers/TSESTreeNode.ts index 8a75e729fd8..806ad70a8b2 100644 --- a/packages/scope-manager/tests/util/serializers/TSESTreeNode.ts +++ b/packages/scope-manager/tests/util/serializers/TSESTreeNode.ts @@ -14,6 +14,7 @@ const EXCLUDED_KEYS = new Set([ const generator = createIdGenerator(); type Node = Record & { type: AST_NODE_TYPES }; +type Identifier = Node & { name: string; type: AST_NODE_TYPES.Identifier }; const SEEN_NODES = new Map(); const serializer: NewPlugin = { @@ -29,7 +30,7 @@ const serializer: NewPlugin = { }, serialize(node: Node): string { if (node.type === AST_NODE_TYPES.Identifier) { - return `Identifier<"${node.name}">`; + return `Identifier<"${(node as Identifier).name}">`; } const keys = Object.keys(node).filter(k => !EXCLUDED_KEYS.has(k)); diff --git a/packages/scope-manager/tests/util/serializers/baseSerializer.ts b/packages/scope-manager/tests/util/serializers/baseSerializer.ts index 7d571803067..a5d11b2a9f3 100644 --- a/packages/scope-manager/tests/util/serializers/baseSerializer.ts +++ b/packages/scope-manager/tests/util/serializers/baseSerializer.ts @@ -62,7 +62,7 @@ function createSerializer( } outputLines.push( - `${childIndentation}${key}: ${printer( + `${childIndentation}${key as string}: ${printer( value, config, childIndentation,