diff --git a/packages/eslint-plugin/src/rules/unified-signatures.ts b/packages/eslint-plugin/src/rules/unified-signatures.ts index c4c7f9bf427..66f783ec1a8 100644 --- a/packages/eslint-plugin/src/rules/unified-signatures.ts +++ b/packages/eslint-plugin/src/rules/unified-signatures.ts @@ -535,7 +535,8 @@ export default util.createRule({ // collect overloads TSDeclareFunction(node): void { - addOverload(node, node.id.name, getExportingNode(node)); + const exportingNode = getExportingNode(node); + addOverload(node, node.id?.name ?? exportingNode?.type, exportingNode); }, TSCallSignatureDeclaration: addOverload, TSConstructSignatureDeclaration: addOverload, diff --git a/packages/eslint-plugin/tests/rules/unified-signatures.test.ts b/packages/eslint-plugin/tests/rules/unified-signatures.test.ts index c8f9740662d..38a74429af7 100644 --- a/packages/eslint-plugin/tests/rules/unified-signatures.test.ts +++ b/packages/eslint-plugin/tests/rules/unified-signatures.test.ts @@ -128,6 +128,14 @@ export interface Foo { bar(baz: string): number[]; bar(): string[]; } +`, + ` +declare module "foo" { + export default function(foo: number): string[]; +} +`, + ` +export default function(foo: number): string[]; `, ], invalid: [ @@ -649,5 +657,33 @@ export function foo(line: number, character?: number): number; }, ], }, + { + code: ` +declare module "foo" { + export default function(foo: number): string[]; + export default function(foo: number, bar?: string): string[]; +} +`, + errors: [ + { + messageId: 'omittingSingleParameter', + line: 4, + column: 40, + }, + ], + }, + { + code: ` +export default function(foo: number): string[]; +export default function(foo: number, bar?: string): string[]; +`, + errors: [ + { + messageId: 'omittingSingleParameter', + line: 3, + column: 38, + }, + ], + }, ], }); diff --git a/packages/typescript-estree/src/ts-estree/ts-estree.ts b/packages/typescript-estree/src/ts-estree/ts-estree.ts index 10cd0b7e0fb..afda76ead68 100644 --- a/packages/typescript-estree/src/ts-estree/ts-estree.ts +++ b/packages/typescript-estree/src/ts-estree/ts-estree.ts @@ -1061,7 +1061,6 @@ export interface TSConstructSignatureDeclaration extends FunctionSignatureBase { } export interface TSDeclareFunction extends FunctionDeclarationBase { - id: Identifier; type: AST_NODE_TYPES.TSDeclareFunction; }