From 4e6f2cdbebce44257fb96fc88afdff78acbcc566 Mon Sep 17 00:00:00 2001 From: Nathan Shively-Sanders <293473+sandersn@users.noreply.github.com> Date: Tue, 13 Sep 2022 10:07:17 -0700 Subject: [PATCH] export-just-namespace supports TSDeclareFunction too (#534) --- packages/dtslint/src/rules/export-just-namespace.ts | 5 +++-- packages/dtslint/test/export-just-namespace.test.ts | 8 ++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/packages/dtslint/src/rules/export-just-namespace.ts b/packages/dtslint/src/rules/export-just-namespace.ts index 6a5272d0..b3db49f4 100644 --- a/packages/dtslint/src/rules/export-just-namespace.ts +++ b/packages/dtslint/src/rules/export-just-namespace.ts @@ -58,6 +58,7 @@ function isJustNamespace(statements: TSESTree.ProgramStatement[], exportEqualsNa break; case AST_NODE_TYPES.ClassDeclaration: case AST_NODE_TYPES.FunctionDeclaration: + case AST_NODE_TYPES.TSDeclareFunction: case AST_NODE_TYPES.TSTypeAliasDeclaration: case AST_NODE_TYPES.TSInterfaceDeclaration: if (nameMatches(statement.id)) { @@ -70,8 +71,8 @@ function isJustNamespace(statements: TSESTree.ProgramStatement[], exportEqualsNa return anyNamespace; - function nameMatches(nameNode: TSESTree.Node | undefined): boolean { - return nameNode !== undefined && nameNode.type === AST_NODE_TYPES.Identifier && nameNode.name === exportEqualsName; + function nameMatches(nameNode: TSESTree.Node | undefined | null): boolean { + return !!nameNode && nameNode.type === AST_NODE_TYPES.Identifier && nameNode.name === exportEqualsName; } } diff --git a/packages/dtslint/test/export-just-namespace.test.ts b/packages/dtslint/test/export-just-namespace.test.ts index 5f471188..fbc1b0f9 100644 --- a/packages/dtslint/test/export-just-namespace.test.ts +++ b/packages/dtslint/test/export-just-namespace.test.ts @@ -58,5 +58,13 @@ class Stuff {} namespace Stuff {} export = Stuff; `, + `export = First +namespace First {} +declare function First() +`, + `declare namespace Second {} +export = Second +declare function Second(s: U): S +` ], });