В следующей строке тип booleanVariable
не boolean
, а false
.
let booleanVariable: boolean = false;
Кажется, что вы не можете увидеть реальный тип, наведя переменную на игровой площадкеили ваша IDE.Но если вам нужно убедиться, вы можете сделать:
const booleanVariable: boolean = false ;
const tmp = booleanVariable; // Here the type of `tmp` is inferred as `false`
Вот как объявить booleanVariable
как действительное boolean
:
let booleanVariable = false as boolean;
Теперь следующая инструкцияэто ошибка:
let numberVariable: number = booleanVariable || 1; // Error: Type 'true | 1' is not assignable to type 'number'.
В JavaScript 0
равен falsy , тогда выражение 0 || booleanVariable
всегда возвращает booleanVariable
.Таким образом, TypeScript делает вывод, что тип выражения является типом booleanVariable
:
let numberVariable: number = 0 || booleanVariable; // Error: Type 'boolean' is not assignable to type 'number'.