Я использую TSLint для статического анализа моего кода TypeScript.
Одно из правил по умолчанию не позволяет использовать !=
для проверки «недоступных» значений.Чтобы объяснить, что я подразумеваю как «недоступно», я приведу пример:
/* This is supposed to return an object with a property token.
* I need to use auth.token in my code but I have to be sure that I have a
* value for the token. I do not control the code in that method. */
const auth = someService.getAuthentication();
Конечно, я могу попытаться угадать, выполняя некоторые тесты, что возвращает метод, когда он не возвращает токен, но я не люблю писать код, основанный на чем-то, что, кажется, возвращает ноль или, кажется, возвращает неопределенное значение.
Я хочу быть уверен, что мой код работает в обоих случаях.
Не лучше ли в этом случае написать:
if (auth.token != null) {...
вместо:
if (auth.token !== null && auth.token !== undefined) {...
?
Я понимаю, что человек, который делаетЯ не знаю, JavaScript может упустить тот факт, что !=
меняет тип операндов, но тот, кто игнорирует это, вероятно, все еще может догадаться о значении этого кода.