mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-02-11 19:27:35 -06:00
Remove property-override-method error (#34494)
Originally removed incorrectly along with method-override-property error in #24343, then both were restored in #33509. Only method-override-property should be an error, since it doesn't actually work at runtime.
This commit is contained in:
parent
d8d5ead83b
commit
ab56cc0c6b
@ -31692,15 +31692,13 @@ namespace ts {
|
||||
}
|
||||
}
|
||||
else if (isPrototypeProperty(base)) {
|
||||
if (isPrototypeProperty(derived)) {
|
||||
// method is overridden with method -- correct case
|
||||
if (isPrototypeProperty(derived) || derived.flags & SymbolFlags.Property) {
|
||||
// method is overridden with method or property -- correct case
|
||||
continue;
|
||||
}
|
||||
else if (derived.flags & SymbolFlags.Accessor) {
|
||||
errorMessage = Diagnostics.Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_accessor;
|
||||
}
|
||||
else {
|
||||
errorMessage = Diagnostics.Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_property;
|
||||
Debug.assert(!!(derived.flags & SymbolFlags.Accessor));
|
||||
errorMessage = Diagnostics.Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_accessor;
|
||||
}
|
||||
}
|
||||
else if (base.flags & SymbolFlags.Accessor) {
|
||||
|
||||
@ -1561,10 +1561,6 @@
|
||||
"category": "Error",
|
||||
"code": 2423
|
||||
},
|
||||
"Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member property.": {
|
||||
"category": "Error",
|
||||
"code": 2424
|
||||
},
|
||||
"Class '{0}' defines instance member property '{1}', but extended class '{2}' defines it as instance member function.": {
|
||||
"category": "Error",
|
||||
"code": 2425
|
||||
|
||||
@ -1,25 +0,0 @@
|
||||
tests/cases/compiler/a.js(14,10): error TS2424: Class 'A' defines instance member function 'foo', but extended class 'B' defines it as instance member property.
|
||||
|
||||
|
||||
==== tests/cases/compiler/a.js (1 errors) ====
|
||||
// @ts-check
|
||||
class A {
|
||||
constructor() {
|
||||
|
||||
}
|
||||
foo() {
|
||||
return 4;
|
||||
}
|
||||
}
|
||||
|
||||
class B extends A {
|
||||
constructor() {
|
||||
super();
|
||||
this.foo = () => 3;
|
||||
~~~
|
||||
!!! error TS2424: Class 'A' defines instance member function 'foo', but extended class 'B' defines it as instance member property.
|
||||
}
|
||||
}
|
||||
|
||||
const i = new B();
|
||||
i.foo();
|
||||
@ -1,15 +0,0 @@
|
||||
tests/cases/compiler/inheritanceMemberPropertyOverridingMethod.ts(8,5): error TS2424: Class 'a' defines instance member function 'x', but extended class 'b' defines it as instance member property.
|
||||
|
||||
|
||||
==== tests/cases/compiler/inheritanceMemberPropertyOverridingMethod.ts (1 errors) ====
|
||||
class a {
|
||||
x() {
|
||||
return "20";
|
||||
}
|
||||
}
|
||||
|
||||
class b extends a {
|
||||
x: () => string;
|
||||
~
|
||||
!!! error TS2424: Class 'a' defines instance member function 'x', but extended class 'b' defines it as instance member property.
|
||||
}
|
||||
@ -1,13 +0,0 @@
|
||||
tests/cases/conformance/classes/propertyMemberDeclarations/propertyOverridesMethod.ts(5,5): error TS2424: Class 'A' defines instance member function 'm', but extended class 'B' defines it as instance member property.
|
||||
|
||||
|
||||
==== tests/cases/conformance/classes/propertyMemberDeclarations/propertyOverridesMethod.ts (1 errors) ====
|
||||
class A {
|
||||
m() { }
|
||||
}
|
||||
class B extends A {
|
||||
m = () => 1
|
||||
~
|
||||
!!! error TS2424: Class 'A' defines instance member function 'm', but extended class 'B' defines it as instance member property.
|
||||
}
|
||||
|
||||
@ -1,16 +0,0 @@
|
||||
tests/cases/compiler/propertyOverridingPrototype.ts(7,5): error TS2424: Class 'Base' defines instance member function 'foo', but extended class 'Derived' defines it as instance member property.
|
||||
|
||||
|
||||
==== tests/cases/compiler/propertyOverridingPrototype.ts (1 errors) ====
|
||||
class Base {
|
||||
foo() {
|
||||
}
|
||||
}
|
||||
|
||||
class Derived extends Base {
|
||||
foo: () => { };
|
||||
~~~
|
||||
!!! error TS2424: Class 'Base' defines instance member function 'foo', but extended class 'Derived' defines it as instance member property.
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user