имеет также базовый интерфейс
есть частные компоненты которые наследуются от него и имеют свои интерфейсы для items
strictTemplates начинает ругаться если видит несоответствие типов
есть какие то варианты нормальной типизации таких кейсов?
Тип у наследников должен тоже быть основан на типе родителя иначе вы нарушаете принцип подстановки Лисков из solid
Он и основан он наследует свойства у items из базового класса
Наверное так если все правильно понял interface IBaseItem { id: number } interface IItem1 extends IBaseItem { title: string } interface IItem2 extends IBaseItem { price: number } abstract class Base<T extends IBaseItem> { abstract items: T[] } class first extends Base<IItem1> { items = [ { id: 1, title: 'first' } ] } class second extends Base<IItem2> { items = [ { id: 1, price: 100 } ] }
Обсуждают сегодня