tests/cases/compiler/nanEquality.ts(3,5): error TS2845: This condition will always return 'false'. tests/cases/compiler/nanEquality.ts(4,5): error TS2845: This condition will always return 'false'. tests/cases/compiler/nanEquality.ts(6,5): error TS2845: This condition will always return 'false'. tests/cases/compiler/nanEquality.ts(7,5): error TS2845: This condition will always return 'false'. tests/cases/compiler/nanEquality.ts(9,5): error TS2845: This condition will always return 'true'. tests/cases/compiler/nanEquality.ts(10,5): error TS2845: This condition will always return 'true'. tests/cases/compiler/nanEquality.ts(12,5): error TS2845: This condition will always return 'true'. tests/cases/compiler/nanEquality.ts(13,5): error TS2845: This condition will always return 'true'. tests/cases/compiler/nanEquality.ts(15,5): error TS2845: This condition will always return 'false'. tests/cases/compiler/nanEquality.ts(16,5): error TS2845: This condition will always return 'false'. tests/cases/compiler/nanEquality.ts(18,5): error TS2845: This condition will always return 'true'. tests/cases/compiler/nanEquality.ts(19,5): error TS2845: This condition will always return 'true'. tests/cases/compiler/nanEquality.ts(21,5): error TS2845: This condition will always return 'false'. tests/cases/compiler/nanEquality.ts(22,5): error TS2845: This condition will always return 'true'. tests/cases/compiler/nanEquality.ts(24,5): error TS2845: This condition will always return 'false'. tests/cases/compiler/nanEquality.ts(25,5): error TS2845: This condition will always return 'true'. tests/cases/compiler/nanEquality.ts(29,5): error TS2845: This condition will always return 'false'. ==== tests/cases/compiler/nanEquality.ts (17 errors) ==== declare const x: number; if (x === NaN) {} ~~~~~~~~~ !!! error TS2845: This condition will always return 'false'. !!! related TS1369 tests/cases/compiler/nanEquality.ts:3:5: Did you mean 'Number.isNaN(x)'? if (NaN === x) {} ~~~~~~~~~ !!! error TS2845: This condition will always return 'false'. !!! related TS1369 tests/cases/compiler/nanEquality.ts:4:13: Did you mean 'Number.isNaN(x)'? if (x == NaN) {} ~~~~~~~~ !!! error TS2845: This condition will always return 'false'. !!! related TS1369 tests/cases/compiler/nanEquality.ts:6:5: Did you mean 'Number.isNaN(x)'? if (NaN == x) {} ~~~~~~~~ !!! error TS2845: This condition will always return 'false'. !!! related TS1369 tests/cases/compiler/nanEquality.ts:7:12: Did you mean 'Number.isNaN(x)'? if (x !== NaN) {} ~~~~~~~~~ !!! error TS2845: This condition will always return 'true'. !!! related TS1369 tests/cases/compiler/nanEquality.ts:9:5: Did you mean '!Number.isNaN(x)'? if (NaN !== x) {} ~~~~~~~~~ !!! error TS2845: This condition will always return 'true'. !!! related TS1369 tests/cases/compiler/nanEquality.ts:10:13: Did you mean '!Number.isNaN(x)'? if (x != NaN) {} ~~~~~~~~ !!! error TS2845: This condition will always return 'true'. !!! related TS1369 tests/cases/compiler/nanEquality.ts:12:5: Did you mean '!Number.isNaN(x)'? if (NaN != x) {} ~~~~~~~~ !!! error TS2845: This condition will always return 'true'. !!! related TS1369 tests/cases/compiler/nanEquality.ts:13:12: Did you mean '!Number.isNaN(x)'? if (x === ((NaN))) {} ~~~~~~~~~~~~~ !!! error TS2845: This condition will always return 'false'. !!! related TS1369 tests/cases/compiler/nanEquality.ts:15:5: Did you mean 'Number.isNaN(x)'? if (((NaN)) === x) {} ~~~~~~~~~~~~~ !!! error TS2845: This condition will always return 'false'. !!! related TS1369 tests/cases/compiler/nanEquality.ts:16:17: Did you mean 'Number.isNaN(x)'? if (x !== ((NaN))) {} ~~~~~~~~~~~~~ !!! error TS2845: This condition will always return 'true'. !!! related TS1369 tests/cases/compiler/nanEquality.ts:18:5: Did you mean '!Number.isNaN(x)'? if (((NaN)) !== x) {} ~~~~~~~~~~~~~ !!! error TS2845: This condition will always return 'true'. !!! related TS1369 tests/cases/compiler/nanEquality.ts:19:17: Did you mean '!Number.isNaN(x)'? if (NaN === NaN) {} ~~~~~~~~~~~ !!! error TS2845: This condition will always return 'false'. if (NaN !== NaN) {} ~~~~~~~~~~~ !!! error TS2845: This condition will always return 'true'. if (NaN == NaN) {} ~~~~~~~~~~ !!! error TS2845: This condition will always return 'false'. if (NaN != NaN) {} ~~~~~~~~~~ !!! error TS2845: This condition will always return 'true'. // ... declare let y: any; if (NaN === y[0][1]) {} ~~~~~~~~~~~~~~~ !!! error TS2845: This condition will always return 'false'. !!! related TS1369 tests/cases/compiler/nanEquality.ts:29:13: Did you mean 'Number.isNaN(...)'? function t1(value: number, NaN: number) { return value === NaN; // ok } function t2(value: number, NaN: number) { return NaN == value; // ok } function t3(NaN: number) { return NaN === NaN; // ok }