@madc0de

Почему в интерфейс не записывается тип boolean?

const q = true;

interface A {
    a?: typeof q // по идее же должен тип boolean задаться переменной
}

const a: A = {a: true} // все ок
const a: A = {a: false} // ошибка
  • Вопрос задан
  • 83 просмотра
Решения вопроса 1
bingo347
@bingo347 Куратор тега TypeScript
Crazy on performance...
В TypeScript есть литеральные типы ('some string', 1, 2, 3, true, false).
Значение константы поменять нельзя, поэтому TypeScript выводит для них литеральный тип.
Поэтому тип q будет не boolean, а true.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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