Merge pull request #41257 from weswigham/jsdoc-declaration-emit-names

Fix visibility lookup for cjs require aliases
This commit is contained in:
Wesley Wigham
2020-10-27 12:01:52 -07:00
committed by GitHub
3 changed files with 12 additions and 12 deletions

View File

@@ -4164,6 +4164,14 @@ namespace ts {
&& isDeclarationVisible(declaration.parent)) {
return addVisibleAlias(declaration, declaration);
}
else if (symbol.flags & SymbolFlags.Alias && isBindingElement(declaration) && isInJSFile(declaration) && declaration.parent?.parent // exported import-like top-level JS require statement
&& isVariableDeclaration(declaration.parent.parent)
&& declaration.parent.parent.parent?.parent && isVariableStatement(declaration.parent.parent.parent.parent)
&& !hasSyntacticModifier(declaration.parent.parent.parent.parent, ModifierFlags.Export)
&& declaration.parent.parent.parent.parent.parent // check if the thing containing the variable statement is visible (ie, the file)
&& isDeclarationVisible(declaration.parent.parent.parent.parent.parent)) {
return addVisibleAlias(declaration, declaration.parent.parent.parent.parent);
}
// Declaration is not visible
return false;