Надеюсь, у вас все хорошо.Я новичок в машинописи. Я пытаюсь создать функцию поиска, и у меня возникла проблема со сложными типами.В коде у меня есть вызов функции, которая принимает параметр, имеющий тип, который определен как интерфейс.Я могу просто инициализировать объект с правильным типом и вставить непосредственно, и ошибки исчезнут, однако я не могу вызвать какие-либо функции, которые бы возвращали объект, имеющий тип 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' отсутствует в типе .Но мне не удалось применить решение для себя.
Кроме того, спасибо заранее.