@@ -635,6 +635,7 @@ namespace ts {
635635 getSuggestionForNonexistentSymbol: (location, name, meaning) => getSuggestionForNonexistentSymbol(location, escapeLeadingUnderscores(name), meaning),
636636 getSuggestedSymbolForNonexistentModule,
637637 getSuggestionForNonexistentExport,
638+ getSuggestedSymbolForNonexistentClassMember,
638639 getBaseConstraintOfType,
639640 getDefaultFromTypeParameter: type => type && type.flags & TypeFlags.TypeParameter ? getDefaultFromTypeParameter(type as TypeParameter) : undefined,
640641 resolveName(name, location, meaning, excludeGlobals) {
@@ -27720,6 +27721,10 @@ namespace ts {
2772027721 }
2772127722 }
2772227723
27724+ function getSuggestedSymbolForNonexistentClassMember(name: string, baseType: Type): Symbol | undefined {
27725+ return getSpellingSuggestionForName(name, arrayFrom(getMembersOfSymbol(baseType.symbol).values()), SymbolFlags.ClassMember);
27726+ }
27727+
2772327728 function getSuggestedSymbolForNonexistentProperty(name: Identifier | PrivateIdentifier | string, containingType: Type): Symbol | undefined {
2772427729 let props = getPropertiesOfType(containingType);
2772527730 if (typeof name !== "string") {
@@ -27739,7 +27744,7 @@ namespace ts {
2773927744 : strName === "class" ? find(properties, x => symbolName(x) === "className")
2774027745 : undefined;
2774127746 return jsxSpecific ?? getSpellingSuggestionForName(strName, properties, SymbolFlags.Value);
27742- }
27747+ }
2774327748
2774427749 function getSuggestionForNonexistentProperty(name: Identifier | PrivateIdentifier | string, containingType: Type): string | undefined {
2774527750 const suggestion = getSuggestedSymbolForNonexistentProperty(name, containingType);
@@ -37346,7 +37351,7 @@ namespace ts {
3734637351
3734737352 const baseClassName = typeToString(baseWithThis);
3734837353 if (prop && !baseProp && hasOverride) {
37349- const suggestion = getSpellingSuggestionForName (symbolName(declaredProp), arrayFrom(getMembersOfSymbol( baseType.symbol).values()), SymbolFlags.ClassMember );
37354+ const suggestion = getSuggestedSymbolForNonexistentClassMember (symbolName(declaredProp), baseType);
3735037355 suggestion ?
3735137356 error(member, Diagnostics.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1, baseClassName, symbolToString(suggestion)) :
3735237357 error(member, Diagnostics.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0, baseClassName);
0 commit comments