Как назначить любой [] [] на интерфейс машинописи - PullRequest
0 голосов
/ 11 декабря 2018

Надеюсь, у вас все хорошо.Я новичок в машинописи. Я пытаюсь создать функцию поиска, и у меня возникла проблема со сложными типами.В коде у меня есть вызов функции, которая принимает параметр, имеющий тип, который определен как интерфейс.Я могу просто инициализировать объект с правильным типом и вставить непосредственно, и ошибки исчезнут, однако я не могу вызвать какие-либо функции, которые бы возвращали объект, имеющий тип any [] [].Я использую метод фильтра, чтобы попытаться удалить пропущенные параметры поиска.Мне было бы удобно также сделать это в машинописном тексте, учитывая структуру проекта.

Вот ссылка на код ...

Выможет видеть ошибку при наведении курсора на красную волнистую линию .Я не уверен, как это исправить или могу ли я это исправить вообще.Вот текст ошибки:

Type 'any[][]' is not assignable to type 'SearchParams'.
  Types of property '[Symbol.iterator]' are incompatible.
    Type '() => IterableIterator<any[]>' is not assignable to type '() => IterableIterator<[SearchParamTypes, string]>'.
      Type 'IterableIterator<any[]>' is not assignable to type 'IterableIterator<[SearchParamTypes, string]>'.
        Type 'any[]' is missing the following properties from type '[SearchParamTypes, string]': 0, 1

А также вот фрагмент ... (Он не запускается. Проверьте код по ссылке выше, чтобы увидеть ошибку.)

enum SearchParamTypes {
  Value = 'value',
  OptionalValue = 'optional'
  //...
}

interface SearchParams {
  [Symbol.iterator](): IterableIterator<[SearchParamTypes, string]>;
}

const cleanedParams : SearchParams = [
      [SearchParamTypes.Value,myValue],
      [SearchParamTypes.OptionalValue,myOptionalValue]
  ].filter(([,value])=> value);

Вот похожий вопрос, на который получил ответ. Свойство '0' отсутствует в типе .Но мне не удалось применить решение для себя.

Кроме того, спасибо заранее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...