В TypeScript я могу успешно скомпилировать следующий код:
const x = true as false;
Итак, у меня есть константа x
со значением true
и типом false
. Я ожидал, что такие прямые утверждения недействительны, но, на удивление, они верны. Например, для аналогичного кода
const x = 0 as false;
есть ошибка компиляции
Преобразование типа 'number' в тип 'false' может быть ошибкой. ошибка, потому что ни один тип в достаточной степени не перекрывается с другим. Если это было намеренно, сначала преобразуйте выражение в «unknown».
Я ожидал, что аналогичная ошибка возникнет с true
и false
.
Почему ошибки нет и есть ли способ (например, некоторый набор параметров компилятора) исправить это?