Существует ли правило ESLint или TSLint, которое проверяет, что логический оператор истина / ложь не применяется к числам? - PullRequest
0 голосов
/ 05 июня 2019

У меня была ошибка сегодня, когда я неожиданно пропускал вызов функции, потому что моя переменная была 0:

const foo: number | undefined = getFoo();
if(foo) {
   // Will not be called if foo is zero
   doSomething(foo);
}

Этот шаблон я использую довольно часто, проверяя, определена ли переменная. Это работает со всем, объектами, массивами, строками ... кроме числа.
Это не первый раз, когда я получаю такую ​​ошибку.

Есть ли правило, которое предупредит меня, что-то вроде:

if(foo)
   --- Warning, testing a number variable that can be defined, but equals to zero

Что-то, что заставит меня написать:

if(foo !== undefined)

Это менее красиво, но, по крайней мере, у него правильное поведение.

Редактировать: после обдумывания кажется, что та же проблема может возникнуть с типом string и значением "" (пустая строка)

1 Ответ

1 голос
/ 05 июня 2019
...