Emit declaration file which inferred type alias with its value
This commit is contained in:
parent
fcac9c4fc5
commit
332b3165c3
3 changed files with 9 additions and 3 deletions
|
@ -2150,8 +2150,13 @@ namespace ts {
|
||||||
buildSymbolDisplay(type.symbol, writer, enclosingDeclaration, SymbolFlags.Type, SymbolFormatFlags.None, nextFlags);
|
buildSymbolDisplay(type.symbol, writer, enclosingDeclaration, SymbolFlags.Type, SymbolFormatFlags.None, nextFlags);
|
||||||
}
|
}
|
||||||
else if (!(flags & TypeFormatFlags.InTypeAlias) && type.flags & (TypeFlags.Anonymous | TypeFlags.UnionOrIntersection) && type.aliasSymbol) {
|
else if (!(flags & TypeFormatFlags.InTypeAlias) && type.flags & (TypeFlags.Anonymous | TypeFlags.UnionOrIntersection) && type.aliasSymbol) {
|
||||||
const typeArguments = type.aliasTypeArguments;
|
if (type.flags & TypeFlags.Anonymous || !(flags & TypeFormatFlags.UseTypeAliasValue)) {
|
||||||
writeSymbolTypeReference(type.aliasSymbol, typeArguments, 0, typeArguments ? typeArguments.length : 0, nextFlags);
|
const typeArguments = type.aliasTypeArguments;
|
||||||
|
writeSymbolTypeReference(type.aliasSymbol, typeArguments, 0, typeArguments ? typeArguments.length : 0, nextFlags);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
writeUnionOrIntersectionType(<UnionOrIntersectionType>type, nextFlags);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (type.flags & TypeFlags.UnionOrIntersection) {
|
else if (type.flags & TypeFlags.UnionOrIntersection) {
|
||||||
writeUnionOrIntersectionType(<UnionOrIntersectionType>type, nextFlags);
|
writeUnionOrIntersectionType(<UnionOrIntersectionType>type, nextFlags);
|
||||||
|
|
|
@ -327,7 +327,7 @@ namespace ts {
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
errorNameNode = declaration.name;
|
errorNameNode = declaration.name;
|
||||||
resolver.writeTypeOfDeclaration(declaration, enclosingDeclaration, TypeFormatFlags.UseTypeOfFunction, writer);
|
resolver.writeTypeOfDeclaration(declaration, enclosingDeclaration, TypeFormatFlags.UseTypeOfFunction | TypeFormatFlags.UseTypeAliasValue, writer);
|
||||||
errorNameNode = undefined;
|
errorNameNode = undefined;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1946,6 +1946,7 @@ namespace ts {
|
||||||
UseFullyQualifiedType = 0x00000080, // Write out the fully qualified type name (eg. Module.Type, instead of Type)
|
UseFullyQualifiedType = 0x00000080, // Write out the fully qualified type name (eg. Module.Type, instead of Type)
|
||||||
InFirstTypeArgument = 0x00000100, // Writing first type argument of the instantiated type
|
InFirstTypeArgument = 0x00000100, // Writing first type argument of the instantiated type
|
||||||
InTypeAlias = 0x00000200, // Writing type in type alias declaration
|
InTypeAlias = 0x00000200, // Writing type in type alias declaration
|
||||||
|
UseTypeAliasValue = 0x00000400, // Writing infered type alias as its value. This is used when we emit declaration file
|
||||||
}
|
}
|
||||||
|
|
||||||
export const enum SymbolFormatFlags {
|
export const enum SymbolFormatFlags {
|
||||||
|
|
Loading…
Reference in a new issue