Похоже, что 'foo' является строкой, что позволяет B.foobar
быть строкой, которая затем конфликтует с типом родительского члена класса A.foobar
.
. следующие работы, которые не выполняют приведение типов из моего уровня понимания:
class A {
public foobar: 'foo' | 'bar' = 'bar';
}
class B extends A {
public foobar: 'foo' | 'bar' = 'foo';
}
Следующее также работает, что заставляет typcript выводить тип B.foobar
из A.foobar
вместо строки значение.
class A {
public foobar: 'foo' | 'bar' = 'bar';
}
class B extends A {
constructor() {
super();
this.foobar = 'foo';
}
}