Это решение по безопасности типа.Вы можете использовать любой тип в if
(или в других местах, где ожидаются условия, например while
или ?:
), так как это работает в JS и является обычной практикой.
Если вы объявляете переменную явно типа boolean
, это означает, что вы хотите ограничить возможные значения true
или false
(и undefined
и null
, если вы не используетеstrictNullChecks
).Поскольку Typescript не выполняет преобразований во время выполнения, если бы ваше назначение было разрешено, b
будет содержать string
.Конечно, он будет работать так же, если используется в условных выражениях, но, например, ===
может дать неожиданные результаты.
Преобразование типа любого значения в boolean
с использованием двойного отрицания (!!
) распространено в JS, и его можно использовать.