Использование! = В JavaScript и TypeScript - PullRequest
0 голосов
/ 23 сентября 2018

Я использую 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 может упустить тот факт, что != меняет тип операндов, но тот, кто игнорирует это, вероятно, все еще может догадаться о значении этого кода.

1 Ответ

0 голосов
/ 23 сентября 2018

В большинстве случаев достаточно:

if (auth && auth.token) {
    //.........
}
...