вы можете определить тип возврата метода A()
на интерфейсе C
до number | string,
, это должен быть совместимый тип возврата.
interface C {
methodA(): number | string
}
class A {
methodA(): string {
return '42'
}
}
class B extends A implements C {
methodA(): string {
return super.methodA();
}
}
РЕДАКТИРОВАТЬ: поэтому, учитывая ваш сценарий ниже, онможет быть не лучшим решением, но вы можете использовать утилиту типа Omit и создать новый тип из C
, чтобы избежать проверки method1
(больше примеров здесь )
interface C {
methodA(): number
//methodB(): string,
//methodC(): number
//..
}
type C1 = Omit<C, "methodA">;
class A {
methodA(): string {
return '42'
}
}
class B extends A implements C1 {
methodA(): string {
return super.methodA();
}
}