vovvkka
@vovvkka

Как обратится к ключу в классе TypeScript?

Здравствуйте, не могу обратится к ключу объекта, выдает ошибку:
Element implicitly has an 'any' type because expression of type 'number' can't be used to index type '{}'.

Не понимаю как ее исправить, сижу уже час, помогите пожалуйста.
Передаю в метод addCoins цифру с определенным номиналом, и он должен к нужному номиналу в объекте делать +1, но не выходит.
Код: тык

class PiggyBank {
    constructor(public coins: object) {}

    addCoin(value: number) {
        this.coins[value]++
    }

    getTotal(): number {
        let total = 0;

        for(const key in this.coins) {
            total += key * this.coins[key];
        }

        return total;
    }
}

const coin = new PiggyBank({1: 0, 3: 0, 5: 0, 10: 0});
coin.addCoin(1)
coin.addCoin(3)
coin.addCoin(5)
coin.addCoin(10)
coin.getTotal() // 19
  • Вопрос задан
  • 180 просмотров
Решения вопроса 1
1. Передаёшь в конструктор coins, но внутри никуда его не записываешь.
2. Ключи всегда приводятся к строке, а ты по ним итерируешься и умножаешь. Из-за приведения типов опять же все умножится, но тс ругаться будет.
3. Инстанс PiggyBank записывается в переменную с разванием coin, куда добавляются coins?
4. Обратиться к свойству по ключу, а не к ключу наверное)
код
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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