Я писал некоторые модульные тесты в TypeScript. Пример теста QUnit содержит:
ok( 1 == "1", "Passed!" );
Компилятор tsc
утверждает, что:
Оператор '==' не может применяться к типам 'number' и 'string'
И выйдет со статусом 1
(хотя он правильно создает JS).
Спектр говорит:
Операторы <, > , < =, > =, ==,! =, === и и == ==
Эти операторы требуют, чтобы один тип операнда был идентичен или подтип другого типа операнда. результат всегда имеет тип булевых примитивов.
Итак, похоже, что предупреждение/ошибка верна. Разве это не приводит к некоторому поражению точки оператора принуждения типа t23? Существует ли когда-либо допустимый прецедент для использования ==
в TypeScript, который не будет выдавать это предупреждение?