У меня есть несколько сложных типов машинописных текстов, которые создаются с помощью генератора кода, и я хочу иметь возможность использовать части этих типов без необходимости снова определять все это.
Например, мой сгенерированный интерфейс может выглядеть так (сильно упрощено)
type Transportation = {
vehicle: {
truck: {...}
car: {
make: string
model: string
weight: string
...
}
}
boat: {...}
...
}
Теперь предположим, что я пишу функцию, которая берет машину и что-то с ней делает
/* This type won't work, I'm asking if there is a proper way to do this*/
processCar(car: Transportation.vehicle.car) {
//TODO: process the car
}
const transport: Transportation = {...}
processCar(transport.vehicle.car)
Есть ли способ сделать тип, основанный на части существующего типа, без необходимости определять весь автомобиль как его собственный тип или интерфейс? Можно ли его расширить интерфейсом или чем-то еще? Спасибо!
А для контекста мои сложные сгенерированные типы берутся из генератора кода graphql . В него можно внести некоторые настройки, но, к сожалению, я не знаю способа заставить его генерировать все в красивых разделенных интерфейсах.