mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-06-18 13:59:04 -05:00
@@ -9166,12 +9166,12 @@ namespace ts {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
function resolveTypeReferenceName(typeReferenceName: EntityNameExpression | EntityName | undefined, meaning: SymbolFlags) {
|
||||
function resolveTypeReferenceName(typeReferenceName: EntityNameExpression | EntityName | undefined, meaning: SymbolFlags, ignoreErrors?: boolean) {
|
||||
if (!typeReferenceName) {
|
||||
return unknownSymbol;
|
||||
}
|
||||
|
||||
return resolveEntityName(typeReferenceName, meaning) || unknownSymbol;
|
||||
return resolveEntityName(typeReferenceName, meaning, ignoreErrors) || unknownSymbol;
|
||||
}
|
||||
|
||||
function getTypeReferenceType(node: NodeWithTypeArguments, symbol: Symbol): Type {
|
||||
@@ -9363,10 +9363,19 @@ namespace ts {
|
||||
if (!links.resolvedType) {
|
||||
let symbol: Symbol | undefined;
|
||||
let type: Type | undefined;
|
||||
let meaning = SymbolFlags.Type;
|
||||
const meaning = SymbolFlags.Type;
|
||||
if (isJSDocTypeReference(node)) {
|
||||
type = getIntendedTypeFromJSDocTypeReference(node);
|
||||
meaning |= SymbolFlags.Value;
|
||||
if (!type) {
|
||||
symbol = resolveTypeReferenceName(getTypeReferenceName(node), meaning, /*ignoreErrors*/ true);
|
||||
if (symbol === unknownSymbol) {
|
||||
symbol = resolveTypeReferenceName(getTypeReferenceName(node), meaning | SymbolFlags.Value);
|
||||
}
|
||||
else {
|
||||
resolveTypeReferenceName(getTypeReferenceName(node), meaning); // Resolve again to mark errors, if any
|
||||
}
|
||||
type = getTypeReferenceType(node, symbol);
|
||||
}
|
||||
}
|
||||
if (!type) {
|
||||
symbol = resolveTypeReferenceName(getTypeReferenceName(node), meaning);
|
||||
|
||||
Reference in New Issue
Block a user