Р>
Версия TypeScript 2.0.2.0
код Я знаю, что код немного глуп, но у меня на самом деле есть такие тесты в моем коде (создание посетителя выражения), и я действительно думаю, что они должны летать и компилироваться сразу.
var a: boolean = (true == false);
var b: boolean = (5 == 2);
Вместо этого он жалуется, что равный операнд не может применяться к типам «true», «false», «5» и «2». Отметьте, что они не являются логическими или числовыми, они на самом деле являются типами «истина», «ложь», «5», «2». Я знаю, что типы 'string' и 'boolean' не могут сравниться, но hey, 5 на самом деле число, а не тип '5', или я ошибаюсь? Р>
Это компилируется. Р>
let x = 2;
var a: boolean = 5 == x;
var b: boolean = <number>5 == <number>2;
Я что-то упускаю, почему не 5 и 2 не считают типом числа?
Ожидаемое поведение: Должен компилироваться
Фактическое поведение: Результаты с компиляционной ошибкой: «Операнд» == 'не может применяться к типам «& lt; first argument & gt;»; и '& lt; second argument & gt;'
Фон Я столкнулся с этими проблемами в машинописи, определяя, что это должно быть так, но как получилось? Ссылка