У меня была ошибка сегодня, когда я неожиданно пропускал вызов функции, потому что моя переменная была 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
и значением ""
(пустая строка)