Добрый день, я так и не смог разобраться в полиморфном this и почему дочерние классы несовместимы с родительскими в некоторых моментах:
class A {
parent: A;
constructor(parent: A) {
this.parent = parent;
}
}
class B extends A {
getParent(): this { // ERROR
return this.parent; // ERROR
}
}
Error: Type 'A' is not assignable to type 'this'. 'this' could be instantiated with an arbitrary type which could be unrelated to 'A'.
Да речь идет о невозможности назначить тип
A
полиморфному типу
this
Почему?, ведь подкласс B расширяет класс A, соответственно они совместимы, в чем проблема?