File tree 1 file changed +9
-12
lines changed
1 file changed +9
-12
lines changed Original file line number Diff line number Diff line change @@ -5762,22 +5762,19 @@ namespace ts {
5762
5762
target.symbol.flags & SymbolFlags.ConstEnum) {
5763
5763
return Ternary.False;
5764
5764
}
5765
- const targetNames = arrayToMap(getEnumMembersOfEnumType(target), member => member.name);
5766
- for (const member of getEnumMembersOfEnumType(source)) {
5767
- if (!hasProperty(targetNames, member.name)) {
5768
- reportError(Diagnostics.Property_0_is_missing_in_type_1,
5769
- member.name,
5770
- typeToString(target, /*enclosingDeclaration*/ undefined, TypeFormatFlags.UseFullyQualifiedType));
5771
- return Ternary.False;
5765
+ for (const property of getPropertiesOfType(getTypeOfSymbol(source.symbol))) {
5766
+ if (property.flags & SymbolFlags.EnumMember) {
5767
+ const targetProperty = getPropertyOfType(getTypeOfSymbol(target.symbol), property.name);
5768
+ if (!targetProperty || !(targetProperty.flags & SymbolFlags.EnumMember)) {
5769
+ reportError(Diagnostics.Property_0_is_missing_in_type_1,
5770
+ property.name,
5771
+ typeToString(target, /*enclosingDeclaration*/ undefined, TypeFormatFlags.UseFullyQualifiedType));
5772
+ return Ternary.False;
5773
+ }
5772
5774
}
5773
5775
}
5774
5776
return Ternary.True;
5775
5777
}
5776
-
5777
- function getEnumMembersOfEnumType(type: Type) {
5778
- return filter(resolveStructuredTypeMembers(getTypeOfSymbol(type.symbol)).properties,
5779
- property => !!(property.flags & SymbolFlags.EnumMember));
5780
- }
5781
5778
}
5782
5779
5783
5780
// Return true if the given type is part of a deeply nested chain of generic instantiations. We consider this to be the case
You can’t perform that action at this time.
0 commit comments