Невозможно предоставить правильный тип данных для свойства, используя Typescript - PullRequest
1 голос
/ 09 апреля 2020

Я получаю ошибку в типизированном коде для приведенного ниже кода, на самом деле для интерфейса ниже, элементы могут быть объектами или массивами, основанными на коде и ответе, но я не уверен, как добавить тип данных массива / объекта / любого, более конкретно «any» для свойства items

export interface Test {
  items: {
   test1: testing[],
   test2: testing[]
  }
}

Ответы [ 2 ]

1 голос
/ 09 апреля 2020

Если вы хотите, чтобы свойство могло иметь несколько типов, вы можете сделать следующее:

export interface Test {
  items: { test1: testing[], test2: testing[] } | testing[] | any
}

Вы можете сделать его более читабельным, добавив больше интерфейсов:

export interface ItemTesting {
  test1: testing[],
  test2: testing[]
}

export interface Test {
  items: ItemTesting | testing[] | any
}

Вы также можете создать это в многократно используемом и обобщенном c Type:

export interface ItemTesting<T> {
  test1: T[],
  test2: T[]
}

export type Testing<T> = ItemTesting<T> | T[] | any;

export interface Test {
  items: Testing<testing>
}

(хотя использование строчных букв для классов или типов не одобряется)

0 голосов
/ 09 апреля 2020

Вам нужно добавить новый интерфейс для каждого нового объекта

export interface Test {
  items: Item
}
export interface Item{
   test1: testing[],
   test2: testing[]
}
export interface testing{
   key:value;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...