From a00e81e22cc0e0b9ede72ab6a242265ce425cae5 Mon Sep 17 00:00:00 2001 From: doniyor2109 Date: Wed, 25 Mar 2020 13:32:33 +0500 Subject: [PATCH 1/3] fix(eslint-plugin): check node against nil --- .../eslint-plugin/src/rules/no-explicit-any.ts | 14 +++++++------- .../tests/rules/no-explicit-any.test.ts | 11 +++++++++++ 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/packages/eslint-plugin/src/rules/no-explicit-any.ts b/packages/eslint-plugin/src/rules/no-explicit-any.ts index 29fb16651a2..763725dcae7 100644 --- a/packages/eslint-plugin/src/rules/no-explicit-any.ts +++ b/packages/eslint-plugin/src/rules/no-explicit-any.ts @@ -131,9 +131,9 @@ export default util.createRule({ */ function isGreatGrandparentRestElement(node: TSESTree.Node): boolean { return ( - typeof node.parent !== 'undefined' && - typeof node.parent.parent !== 'undefined' && - typeof node.parent.parent.parent !== 'undefined' && + node.parent != null && + node.parent.parent != null && + node.parent.parent.parent != null && isNodeRestElementInFunction(node.parent.parent.parent) ); } @@ -146,11 +146,11 @@ export default util.createRule({ */ function isGreatGreatGrandparentRestElement(node: TSESTree.Node): boolean { return ( - typeof node.parent !== 'undefined' && - typeof node.parent.parent !== 'undefined' && + node.parent != null && + node.parent.parent != null && isNodeValidTSType(node.parent.parent) && - typeof node.parent.parent.parent !== 'undefined' && - typeof node.parent.parent.parent.parent !== 'undefined' && + node.parent.parent.parent != null && + node.parent.parent.parent.parent != null && isNodeRestElementInFunction(node.parent.parent.parent.parent) ); } diff --git a/packages/eslint-plugin/tests/rules/no-explicit-any.test.ts b/packages/eslint-plugin/tests/rules/no-explicit-any.test.ts index d065c410987..fa68b09919e 100644 --- a/packages/eslint-plugin/tests/rules/no-explicit-any.test.ts +++ b/packages/eslint-plugin/tests/rules/no-explicit-any.test.ts @@ -925,6 +925,17 @@ const test = >() => {}; }, ], }, + { + code: `type Any = any;`, + options: [{ ignoreRestArgs: true }], + errors: [ + { + messageId: 'unexpectedAny', + line: 1, + column: 12, + }, + ], + }, { code: `function foo5(...args: any) {}`, options: [{ ignoreRestArgs: true }], From 21941f714ba627483d04d2a3a0922cfe92a1caa6 Mon Sep 17 00:00:00 2001 From: doniyor2109 Date: Wed, 25 Mar 2020 14:41:59 +0500 Subject: [PATCH 2/3] fix(eslint-plugin): check node against nil --- packages/eslint-plugin/src/rules/no-explicit-any.ts | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/packages/eslint-plugin/src/rules/no-explicit-any.ts b/packages/eslint-plugin/src/rules/no-explicit-any.ts index 763725dcae7..ffe30553b35 100644 --- a/packages/eslint-plugin/src/rules/no-explicit-any.ts +++ b/packages/eslint-plugin/src/rules/no-explicit-any.ts @@ -131,9 +131,7 @@ export default util.createRule({ */ function isGreatGrandparentRestElement(node: TSESTree.Node): boolean { return ( - node.parent != null && - node.parent.parent != null && - node.parent.parent.parent != null && + node?.parent?.parent?.parent != null && isNodeRestElementInFunction(node.parent.parent.parent) ); } @@ -146,8 +144,7 @@ export default util.createRule({ */ function isGreatGreatGrandparentRestElement(node: TSESTree.Node): boolean { return ( - node.parent != null && - node.parent.parent != null && + node.parent?.parent != null && isNodeValidTSType(node.parent.parent) && node.parent.parent.parent != null && node.parent.parent.parent.parent != null && From 99dbc1b84750112b41a78f06ef5f6900425de627 Mon Sep 17 00:00:00 2001 From: doniyor2109 Date: Thu, 26 Mar 2020 11:05:31 +0500 Subject: [PATCH 3/3] fix(eslint-plugin): check node against nil --- packages/eslint-plugin/src/rules/no-explicit-any.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/eslint-plugin/src/rules/no-explicit-any.ts b/packages/eslint-plugin/src/rules/no-explicit-any.ts index ffe30553b35..91765c40e26 100644 --- a/packages/eslint-plugin/src/rules/no-explicit-any.ts +++ b/packages/eslint-plugin/src/rules/no-explicit-any.ts @@ -144,10 +144,8 @@ export default util.createRule({ */ function isGreatGreatGrandparentRestElement(node: TSESTree.Node): boolean { return ( - node.parent?.parent != null && + node.parent?.parent?.parent?.parent != null && isNodeValidTSType(node.parent.parent) && - node.parent.parent.parent != null && - node.parent.parent.parent.parent != null && isNodeRestElementInFunction(node.parent.parent.parent.parent) ); }