@@ -9987,8 +9987,8 @@ namespace ts {
9987
9987
});
9988
9988
}
9989
9989
9990
- function getLiteralTypeFromProperty(prop: Symbol, include: TypeFlags) {
9991
- if (!(getDeclarationModifierFlagsFromSymbol(prop) & ModifierFlags.NonPublicAccessibilityModifier)) {
9990
+ function getLiteralTypeFromProperty(prop: Symbol, include: TypeFlags, includeNonPublic?: boolean ) {
9991
+ if (includeNonPublic || !(getDeclarationModifierFlagsFromSymbol(prop) & ModifierFlags.NonPublicAccessibilityModifier)) {
9992
9992
let type = getLateBoundSymbol(prop).nameType;
9993
9993
if (!type && !isKnownSymbol(prop)) {
9994
9994
if (prop.escapedName === InternalSymbolName.Default) {
@@ -10006,8 +10006,8 @@ namespace ts {
10006
10006
return neverType;
10007
10007
}
10008
10008
10009
- function getLiteralTypeFromProperties(type: Type, include: TypeFlags) {
10010
- return getUnionType(map(getPropertiesOfType(type), p => getLiteralTypeFromProperty(p, include)));
10009
+ function getLiteralTypeFromProperties(type: Type, include: TypeFlags, includeNonPublic?: boolean ) {
10010
+ return getUnionType(map(getPropertiesOfType(type), p => getLiteralTypeFromProperty(p, include, includeNonPublic )));
10011
10011
}
10012
10012
10013
10013
function getNonEnumNumberIndexInfo(type: Type) {
@@ -10023,10 +10023,10 @@ namespace ts {
10023
10023
type === wildcardType ? wildcardType :
10024
10024
type.flags & TypeFlags.Unknown ? neverType :
10025
10025
type.flags & (TypeFlags.Any | TypeFlags.Never) ? keyofConstraintType :
10026
- stringsOnly ? !noIndexSignatures && getIndexInfoOfType(type, IndexKind.String) ? stringType : getLiteralTypeFromProperties(type, TypeFlags.StringLiteral) :
10027
- !noIndexSignatures && getIndexInfoOfType(type, IndexKind.String) ? getUnionType([stringType, numberType, getLiteralTypeFromProperties(type, TypeFlags.UniqueESSymbol)]) :
10028
- getNonEnumNumberIndexInfo(type) ? getUnionType([numberType, getLiteralTypeFromProperties(type, TypeFlags.StringLiteral | TypeFlags.UniqueESSymbol)]) :
10029
- getLiteralTypeFromProperties(type, TypeFlags.StringOrNumberLiteralOrUnique);
10026
+ stringsOnly ? !noIndexSignatures && getIndexInfoOfType(type, IndexKind.String) ? stringType : getLiteralTypeFromProperties(type, TypeFlags.StringLiteral, /*includeNonPublic*/ true ) :
10027
+ !noIndexSignatures && getIndexInfoOfType(type, IndexKind.String) ? getUnionType([stringType, numberType, getLiteralTypeFromProperties(type, TypeFlags.UniqueESSymbol, /*includeNonPublic*/ true )]) :
10028
+ getNonEnumNumberIndexInfo(type) ? getUnionType([numberType, getLiteralTypeFromProperties(type, TypeFlags.StringLiteral | TypeFlags.UniqueESSymbol, /*includeNonPublic*/ true )]) :
10029
+ getLiteralTypeFromProperties(type, TypeFlags.StringOrNumberLiteralOrUnique, /*includeNonPublic*/ true );
10030
10030
}
10031
10031
10032
10032
function getExtractStringType(type: Type) {
0 commit comments