Задать вопрос
@andrey_koyta

Почему одинаковые интерфейсы 'not assignable'?

Есть интерфейс:
interface Currencies {
  currency: 'RUB'|'USD'|'EUR'|'AUD'
}


Есть функция, принимающая этот интерфейс, выдающая ошибку:
set setCurrency(currency: Currencies) {
    this.preferences.currency = currency; // Error: Type 'Currencies' not assignable to type 'AUD'
}


Если написать так, то ошибки нет:
set setCurrency(currency: 'RUB'|'USD'|'EUR'|'AUD') {
  this.preferences.currency = currency;
}
  • Вопрос задан
  • 59 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Курс по TypeScript
    3 месяца
    Далее
  • Merion Academy
    Онлайн-курс по TypeScript
    2 месяца
    Далее
  • Stepik
    TypeScript с 0 до ПРО | Решение задач по TS, разбор сложных тем
    1 неделя
    Далее
Решения вопроса 1
Потому что это:
set setCurrency(currency: 'RUB'|'USD'|'EUR'|'AUD') {
  this.preferences.currency = currency;
}

Соответствует вот этому, но никак не интерфейсу
type Currencies = 'RUB'|'USD'|'EUR'|'AUD'

Дальше, думаю, все ясно.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Coder321
Потому что интерфейс Currencies подрозумевает что currency это обьект, а не стринга
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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