ошибка TS7053: элемент неявно имеет тип ‘any’, потому что выражение типа ‘»data»‘ не может быть использовано для индексации типа ‘{}’

#javascript #typescript

#javascript #typescript

Вопрос:

пусть resultArray: Array = await Promise.all(PromiseArray);

     resultArray.forEach((result)=>{
        console.log(result);
        let data: StockObject = result['data'];  //  <--Error is hereeee

            console.log("Date: "   data.date  
                " Close: "   data.close  
                " High: "   data.high  
                " Low: "   data.low  
                " Open: "   data.open  
                " Volume: "   data.volume 
            ); 
    });
}
catch(error){
    console.log("Error: "   JSON.stringify(error));
}
 

}

Я не могу ИЗБАВИТЬСЯ ОТ ЭТОЙ ОШИБКИ

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

1. Что такое promiseArray ? Array требуется аргумент типа.

Ответ №1:

Быстрый обходной путь:

 let data: StockObject = (result as any)['data']; 
 

Правильным способом было бы правильно ввести result объект, что, вероятно, означает использование чего-то вроде:

 let resultArray = await Promise.all<StockObject, StockObject>(promiseArray);
 

или

 let resultArray = (await Promise.all(promiseArray)) as StockObject[];
 

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

1. Это плохо, потому что это просто скрывает и перемещает проблему, которая предположительно связана с типом promiseArray .