Anon3363
@Anon3363

Как исправить ошибку Property 'item' does not exist on type 'Record'?

for(let item in classes){
    classes.item = 'page'+item
  }
  • Вопрос задан
  • 74 просмотра
Решения вопроса 1
Aetae
@Aetae Куратор тега TypeScript
Тлен
Во-первых: как верно заметил YavaDev: classes[item].
Во-вторых: только вручную, на свой страх и риск:
for(let item in classes) {
    classes[item as keyof typeof classes] = 'page'+item
}
В typescript специально не добавили автоматическую типизацию ключей оставив просто string, так как из-за его структурной природы нельзя наверняка сказать, есть ли в полученном объекте(или его прототипе) ещё какие-то ключи, кроме тех, что указаны в его типе, и, соответственно, нельзя быть уверенным, что ничего не сломается.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
E1ON
@E1ON
Programming, Gamedev, VR
Нужно добавить в тип Record свойство item
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы