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