File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -15589,10 +15589,15 @@ m2: ${(this.mapper2 as unknown as DebugTypeMapper).__debugToString().split("\n")
1558915589 return accessFlags & AccessFlags.IncludeUndefined ? getUnionType([indexInfo.type, undefinedType]) : indexInfo.type;
1559015590 }
1559115591 errorIfWritingToReadonlyIndex(indexInfo);
15592- if (accessFlags & AccessFlags.IncludeUndefined) {
15593- if (objectType.symbol && objectType.symbol.flags & (SymbolFlags.RegularEnum | SymbolFlags.ConstEnum) && (indexType.symbol && indexType.flags & TypeFlags.EnumLiteral && getParentOfSymbol(indexType.symbol) === objectType.symbol)) {
15594- return indexInfo.type;
15595- }
15592+ // When accessing an enum object with its own type,
15593+ // e.g. E[E.A] for enum E { A }, undefined shouldn't
15594+ // be included in the result type
15595+ if ((accessFlags & AccessFlags.IncludeUndefined) &&
15596+ !(objectType.symbol &&
15597+ objectType.symbol.flags & (SymbolFlags.RegularEnum | SymbolFlags.ConstEnum) &&
15598+ (indexType.symbol &&
15599+ indexType.flags & TypeFlags.EnumLiteral &&
15600+ getParentOfSymbol(indexType.symbol) === objectType.symbol))) {
1559615601 return getUnionType([indexInfo.type, undefinedType]);
1559715602 }
1559815603 return indexInfo.type;
You can’t perform that action at this time.
0 commit comments