Использование ИЛИ в type interface typescript

#angular #typescript

#angular #typescript

Вопрос:

У меня есть массив, в котором каждый элемент индекса может быть либо IBusinessDetailCompetitor или ICustomerCompetitorInstant

Итак, могу ли я сделать что-то подобное этому
customerCompititorArray: (IBusinessDetailCompetitor[] | ICustomerCompetitorInstant[])

Но это приводит к ошибке. Пожалуйста, помогите.

Комментарии:

1. @yudhiesh:/ я так не думаю

2. Какую ошибку вы получаете?

Ответ №1:

Элемент в массиве должен иметь типы объединения:

 interface IBusinessDetailCompetitor {
    a: string
}
interface ICustomerCompetitorInstant {
    b: string
}

const customerCompititorArrayCorrect: Array<IBusinessDetailCompetitor | ICustomerCompetitorInstant> = [{a: '1'}, {b: '2'}]
 

См. TypeScript Playground

Комментарии:

1. Это также позволяет объекту of {a: "", b: ""} находиться в массиве. typescriptlang.org/play ? #code/ …