Не слушай
Василий Банников, плодить копипаст-типы точно не надо.
А по размещению типов точно такая же логика как с обычными модулями. Так что абсолютно нормально импортировать связанные типы из связанного модуля. Все теории и паттерны проектирования применяются и тут.
По хорошему конечно стоит придерживаться SOLID или чего-то подобного.
Т.е. в
Grid
сделать тип
IGridItemProps
с теми свойствами которые точно нужны для работы
Grid
, а в
GridItem
наследовать от него уже конкретную реализацию
interface GridItemProps extends IGridItemProps { ... }
. Однако это нужно только если теоретически могут появиться ещё
GridItemSuper
и
GrigItemNice
, если же такого быть не может и модули(компоненты) сами по себе тесно связны, то заморачиваться не стоит.