number
description: string
}
//2
{
id: number,
idCore: number,
idTest2: number
description: string
}
//3
{
id: number,
idCore: number,
idTest3: number
description: string
}
У них по сути общие свойства это id, idCore, description. А вот idTest1/idTest2/idTest3, отличаются друг от друга (названия условные, конечно же). Это лучше сделать как-то так:
{
id: number,
idCore: number,
idTest1?: number,
idTest2?: number,
idTest3?: number
description: string
}
Или разнести по разным интерфейсам?
Можно использовать юнион для таких целей
По опыту - зависит от количества объектов - если они в будущем будут разрастаться - то получится такой «объект бога» с кучей опциональных пропсов, из которого будет невозможно понять, к какой бизнес-сущности он в данный момент относится
Но вообще, по фен-шую, даже в случае малого кол-па стоит разделять типы по бизнес-сущностям и использовать narrowing - тогда извлечёшь максимальную пользу от типов
Обсуждают сегодня