From 8e75d2c4a89be8cd523456ae2a39c70f4ed299c3 Mon Sep 17 00:00:00 2001 From: Joshua Chen Date: Sat, 30 Sep 2023 23:52:18 -0400 Subject: [PATCH 1/2] fix(eslint-plugin): [no-unsafe-return] allow returning anything if explicitly returning any --- packages/eslint-plugin/src/rules/no-unsafe-return.ts | 8 +++++++- .../eslint-plugin/tests/rules/no-unsafe-return.test.ts | 6 ++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/packages/eslint-plugin/src/rules/no-unsafe-return.ts b/packages/eslint-plugin/src/rules/no-unsafe-return.ts index 93a1226e9e4a..e5dcf976bbbd 100644 --- a/packages/eslint-plugin/src/rules/no-unsafe-return.ts +++ b/packages/eslint-plugin/src/rules/no-unsafe-return.ts @@ -96,7 +96,13 @@ export default util.createRule({ // function return type, we shouldn't complain (it's intentional, even if unsafe) if (functionTSNode.type) { for (const signature of functionType.getCallSignatures()) { - if (returnNodeType === signature.getReturnType()) { + if ( + returnNodeType === signature.getReturnType() || + util.isTypeFlagSet( + signature.getReturnType(), + ts.TypeFlags.Any | ts.TypeFlags.Unknown, + ) + ) { return; } } 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 b75cdfb28c05..c7e6357054e7 100644 --- a/packages/eslint-plugin/tests/rules/no-unsafe-return.test.ts +++ b/packages/eslint-plugin/tests/rules/no-unsafe-return.test.ts @@ -108,6 +108,12 @@ function foo(): Set { return new Map(); } `, + // https://github.com/typescript-eslint/typescript-eslint/issues/3549 + ` + function foo(): any { + return [] as any[]; + } + `, ], invalid: [ { From e677bb781ac850f97bcf96df06a17649d4ca40dc Mon Sep 17 00:00:00 2001 From: Joshua Chen Date: Fri, 6 Oct 2023 11:55:14 -0400 Subject: [PATCH 2/2] Add test --- packages/eslint-plugin/tests/rules/no-unsafe-return.test.ts | 5 +++++ 1 file changed, 5 insertions(+) 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 c7e6357054e7..42a798ffe117 100644 --- a/packages/eslint-plugin/tests/rules/no-unsafe-return.test.ts +++ b/packages/eslint-plugin/tests/rules/no-unsafe-return.test.ts @@ -114,6 +114,11 @@ function foo(): Set { return [] as any[]; } `, + ` + function foo(): unknown { + return [] as any[]; + } + `, ], 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