docs/libs/typescript.js
function getReferencedDeclarationWithCollidingName(node) {
            var symbol = getReferencedValueSymbol(node);
            return symbol && isSymbolOfDeclarationWithCollidingName(symbol) ? symbol.valueDeclaration : undefined;
        }
function getReferencedDeclarationWithCollidingName(node) {
            var symbol = getReferencedValueSymbol(node);
            return symbol && isSymbolOfDeclarationWithCollidingName(symbol) ? symbol.valueDeclaration : undefined;
        }
function getReferencedDeclarationWithCollidingName ( node ) { var symbol = getReferencedValueSymbol ( node ) ; return symbol && isSymbolOfDeclarationWithCollidingName ( symbol ) ? symbol . valueDeclaration : undefined ; }
When resolved as an expression identifier, if the given node references a nested block scoped entity with a name that either hides an existing name or might hide it when compiled downlevel, return the declaration of that entity. Otherwise, return undefined.
When resolved as an expression identifier if the given node references a nested block scoped entity with a name that either hides an existing name or might hide it when compiled downlevel return the declaration of that entity . Otherwise return undefined .