diff --git a/eslint.config.mjs b/eslint.config.mjs index bf79a45f39b6..a7dac74adc10 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -208,6 +208,7 @@ export default tseslint.config( { commentPattern: '.*intentional fallthrough.*' }, ], 'no-lonely-if': 'error', + 'no-unreachable-loop': 'error', 'no-useless-call': 'error', 'no-useless-computed-key': 'error', 'no-useless-concat': 'error', diff --git a/packages/eslint-plugin/src/rules/no-mixed-enums.ts b/packages/eslint-plugin/src/rules/no-mixed-enums.ts index e8a06d9861e0..a3eddf6f2a0f 100644 --- a/packages/eslint-plugin/src/rules/no-mixed-enums.ts +++ b/packages/eslint-plugin/src/rules/no-mixed-enums.ts @@ -170,18 +170,15 @@ export default createRule({ .getSymbolAtLocation(tsNode)! .getDeclarations()!; - for (const declaration of declarations) { - for (const member of (declaration as ts.EnumDeclaration).members) { - return member.initializer - ? tsutils.isTypeFlagSet( - typeChecker.getTypeAtLocation(member.initializer), - ts.TypeFlags.StringLike, - ) - ? AllowedType.String - : AllowedType.Number - : AllowedType.Number; - } - } + const [{ initializer }] = (declarations[0] as ts.EnumDeclaration) + .members; + return initializer && + tsutils.isTypeFlagSet( + typeChecker.getTypeAtLocation(initializer), + ts.TypeFlags.StringLike, + ) + ? AllowedType.String + : AllowedType.Number; } // Finally, we default to the type of the first enum member diff --git a/packages/eslint-plugin/src/rules/no-unsafe-return.ts b/packages/eslint-plugin/src/rules/no-unsafe-return.ts index ae959627c09d..d9c7cd60cc0f 100644 --- a/packages/eslint-plugin/src/rules/no-unsafe-return.ts +++ b/packages/eslint-plugin/src/rules/no-unsafe-return.ts @@ -166,7 +166,8 @@ export default createRule({ }); } - for (const signature of functionType.getCallSignatures()) { + const signature = functionType.getCallSignatures().at(0); + if (signature) { const functionReturnType = signature.getReturnType(); const result = isUnsafeAssignment( returnNodeType, diff --git a/packages/eslint-plugin/tests/rules/no-unsafe-return.test.ts b/packages/eslint-plugin/tests/rules/no-unsafe-return.test.ts index dc5e1df369d6..c30c6a2b0bf1 100644 --- a/packages/eslint-plugin/tests/rules/no-unsafe-return.test.ts +++ b/packages/eslint-plugin/tests/rules/no-unsafe-return.test.ts @@ -127,6 +127,7 @@ function foo(): Set { return [] as any[]; } `, + 'const foo: (() => void) | undefined = () => 1;', ], invalid: [ { 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