Estoy configurando max a Infinity en este objeto:
let RANGE_DEFAULT_OPTIONS: any = { min: 0, max: Infinity }; console.log(RANGE_DEFAULT_OPTIONS); // {min: 0, max: null} Cuando se registra el objeto RANGE_DEFAULT_OPTIONS , registra un null para la propiedad max .
Aquí está la demostración de Stackblitz
También esto registrará true :
console.log(RANGE_DEFAULT_OPTIONS.max === Infinity); Entonces, ¿ Infinity y null son intercambiables?
No, no lo son.
Normalmente, console.log(…) llamado con un objeto, imprime el objeto intacto:
const obj = { min: 0, max: Infinity }; console.log(obj); En el caso de StackBlitz, probablemente haya una llamada a JSON.stringify(…) en algún lugar, lo que estropea las cosas (lo cual es triste, en mi opinión):
Este es el mismo código en un fragmento que puede ejecutar en su navegador. Como puede ver, Infinity y null no son iguales.
let RANGE_DEFAULT_OPTIONS = { min: 0, max: Infinity }; console.log(RANGE_DEFAULT_OPTIONS); console.log('strict equality', Infinity === null); console.log('loose equality', Infinity == null);