Недавно у меня возникла проблема с тройной проверкой number | undefined
var на undefined
, но из-за того, что я не уделял внимания при написании кода, когда число было 0, он ошибочно обвинил его в неопределенном значении.
Затем я узнал о строго-логические-выражения Правило ESLint.
Выглядит очень полезно и безопасно, но, учитывая этот пример:
const text: string | undefined = stringOrUndefined1 || stringOrUndefined2 || undefined; // the strings can be empty
if (!text) // I was doing it this way to check if the value was falsy. With the new rule, it complains.
return;
if (text === undefined || text === '') // This works, but is 4x the length of the one above. I don't want to write the var name more than once
if (!!text == false) // "Unexpected nullable string value in conditional. Please handle the nullish/empty cases explicitly."
if (!!!text) // Same warn as above
Есть ли способ быстро и качественно проверить, является ли значение ложным без длинного второго условного выражения и без отключения правила, даже только для конкретной строки?
Я знаю, что можно отключить только строки, допускающие значение NULL, но этот вопрос также относится к числам - правилу, которое я хочу сохранить из соображений безопасности.
!!text
требует неявного преобразования в логическое значение для первого применяемого!
; неясно, при каких обстоятельствах вы хотите получить предупреждение, а при каких - нет. - person kaya3   schedule 21.11.2020text == false
, как позволяет JS. Однако в Typescript есть уже выпущенная ошибка, которая не позволяет этого. - person Henrique Bruno   schedule 09.12.2020