RV
foo
. Логично.С другой стороны этого поля нет на DeletableItem. И именно DeletableItem передается в коллбек из DeleteItemButton.
Size: a a a
RV
foo
. Логично.RV
doDelete: (item: ContainerItem) => void;
и onDelete: (item: DeletableItem) => void;
.DB
doDelete: (item: ContainerItem) => void;
и onDelete: (item: DeletableItem) => void;
.EO
DB
DB
DD
doDelete: (item: ContainerItem) => void;
и onDelete: (item: DeletableItem) => void;
.DeleteItemButton
не надо знать о каких либо других свойствах кроме необходимых ей, соотвественно не хотелось использовать один и тот же тип, или наследовать т.к. в теории может прилетать не только containerItem
но и любой другой объект соотвествующий DeletableItem
any
onDelete: (item: any) => void;
onDelete: (item: DeletableItem) => void;
RV
DeleteItemButton
не надо знать о каких либо других свойствах кроме необходимых ей, соотвественно не хотелось использовать один и тот же тип, или наследовать т.к. в теории может прилетать не только containerItem
но и любой другой объект соотвествующий DeletableItem
any
onDelete: (item: any) => void;
onDelete: (item: DeletableItem) => void;
RV
EO
EO
DD
EO
DD
EO
EO
RV
[index: string]: any;
и таки наследовал любые типы айтемов от DeletableItem. Сейчас это работает из-за duck typing, это не очень хорошо, мне кажетсяRV
EO
RV