У меня следующая структура интерфейса для хранения путешественников.
interface Person: {
age: number,
name: string
}
interface TravelersDirectory {
[country: string]: Person[]
}
example:
travelersDirectory = {
'India': [
{
age: 30,
name 'X'
},
{
age: 35,
name 'Y'
},
]
}
С новым изменением я собираюсь отделить людей от каталога путешественников до Людей, а ссылки будут храниться в каталоге путешественников. Новый интерфейс будет выглядеть следующим образом:
interface Persons extends Array<Person>
Но из-за бизнес-требований путешественники могут хранить в индексе (Persons) или объекте Person
пример:
const persons = [
{
age: 30,
name 'X'
},
{
age: 35,
name 'Y'
},
];
const travelersDirectory = [
'India': [
0,
{
age: 35,
name 'Y'
},
]
]
Это возможно? оба типа (индекс и объект Person) могут сосуществовать? Я попытался отработать, внеся изменения в интерфейс travelDirectory, но он не сработал. Попытка 1:
interface TravelersDirectory {
[country: string]: Person[] | number[]
}
Попытка 2:
interface Persons extends Array<Person | number>
interface TravelersDirectory {
[country: string]: Persons
}
Как я могу это сделать?
Примечание. Используемая структура данных имеет символьную c, и я могу ' т редизайн это. Обойти это можно, только играя с интерфейсами
Проверьте эту ссылку на точную проблему https://stackblitz.com/edit/typescript-ypc59j