MiiZZo
@MiiZZo
JavaScript, React, NodeJS, Student

Почему при итерации по ключам объекта с помощью цикла for typescript определяет тип ключа как string?

const object: IObject = {
    number: 0
}

for (let key in object) {
    object[key] =  Math.random();
}


Log ошибки tsc:
Element implicitly has an 'any' type because expression of type 'string' can't be used to index type 'IObject '.
No index signature with a parameter of type 'string' was found on type 'IObject '.
  • Вопрос задан
  • 492 просмотра
Решения вопроса 1
E1ON
@E1ON
Programming, Gamedev, VR
Ну да, это строка. Вам нужно конкретизировать key, что бы в нём были ключи итерируемого обьекта:

const object: IObject = {
    number: 0,
    superNumber: 0,
}

let key: keyof IObject;  // "number" | "superNumber"
for (key in object) {
    object[key] =  Math.random();
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы