Типизировать массив объектов, но у первого элемента уникальные свойства, а у остальных - однотипные
У меня имеется вопрос. Как написать тип в TypeScript для вот такого JSON объекта:
[
{
general: "yes!"
},
{foo1: "bar1", foo2: "bar2"},
{foo1: "bar1", foo2: "bar2"},
{foo1: "bar1", foo2: "bar2"}
]
то есть: имеется массив который состоит из объектов. но у первого объекта другие свойства, а вот у остальных объектов уже будут одинаковые свойства(то есть остальные объекты повторяются). можно ли как-то тип для этого написать что-бы тайпскрипт понимал?
Ответы (1 шт):
Автор решения: smellyshovel
→ Ссылка
type Obj = {foo1: string, foo2: string}[];
type Target = [{general: string}, ...Obj];
// Ваш тип
const data: Target = [
{
general: "yes!"
},
{foo1: "bar1", foo2: "bar2"},
{foo1: "bar1", foo2: "bar2"},
{foo1: "bar1", foo2: "bar2"}
]
// Не подходит
const data2: Target = [
{foo1: "bar1", foo2: "bar2"},
{foo1: "bar1", foo2: "bar2"},
{foo1: "bar1", foo2: "bar2"}
]
// Не подходит
const data3: Target = [
{
general: "yes!"
},
{foo1: "bar1", foo2: "bar2"},
{foo1: 2, foo2: "bar2"},
{foo1: "bar1", foo2: "bar2"}
]