Излученный JavaScript будет, по определению, работать так же, как JavaScript.
Что касается типов, которые компилятор распознает как falsy во время разработки, краткий ответ «все, кроме NaN
»:
const f0 = !false // true
const f1 = !0; // true
const f2 = !0n; // true
const f3 = !""; // true
const f4 = !null; // true
const f5 = !undefined; // true
const f6 = !NaN; // boolean (no NaN type in TypeScript)
Сейчас TypeScript не работает не имеет цифр c литерального типа , соответствующего NaN
; это только замечено как тип number
. И поскольку number
может быть либо правдивым, либо ложным, тип !NaN
просто boolean
. Существует открытое предложение , microsoft / TypeScript # 28682 , чтобы ввести цифры c для NaN
(и для Infinity
и -Infinity
), но я не знаю, будет ли это когда-либо адресовано.
Хорошо, надеюсь, это поможет; удачи!
Детская площадка ссылка на код