From b79b7068e9a9f29c57941a1953619be21f34198e Mon Sep 17 00:00:00 2001 From: Qjuh <76154676+Qjuh@users.noreply.github.com> Date: Sat, 27 Apr 2024 16:35:25 +0200 Subject: [PATCH] fix(api-extractor-model): resolve doc reference for classes with merged interfaces (#10225) fix(api-extractor-model): resolve doc reference with merged interfaces --- .../src/model/ModelReferenceResolver.ts | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/packages/api-extractor-model/src/model/ModelReferenceResolver.ts b/packages/api-extractor-model/src/model/ModelReferenceResolver.ts index 972b57e8172a..48722f1fe555 100644 --- a/packages/api-extractor-model/src/model/ModelReferenceResolver.ts +++ b/packages/api-extractor-model/src/model/ModelReferenceResolver.ts @@ -113,11 +113,19 @@ export class ModelReferenceResolver { const memberSelector: DocMemberSelector | undefined = memberReference.selector; if (memberSelector === undefined) { if (foundMembers.length > 1) { - result.errorMessage = `The member reference ${JSON.stringify(identifier)} was ambiguous`; - return result; + const foundClass: ApiItem | undefined = foundMembers.find((member) => member.kind === ApiItemKind.Class); + if ( + foundClass && + foundMembers.filter((member) => member.kind === ApiItemKind.Interface).length === foundMembers.length - 1 + ) { + currentItem = foundClass; + } else { + result.errorMessage = `The member reference ${JSON.stringify(identifier)} was ambiguous`; + return result; + } + } else { + currentItem = foundMembers[0]!; } - - currentItem = foundMembers[0]!; } else { let memberSelectorResult: IResolveDeclarationReferenceResult; switch (memberSelector.selectorKind) {