En Vanilla JavaScript, hay dos tipos de datos primarios, nulos e indefinidos . Anteriormente en TypeScript, no era posible nombrar explícitamente estos tipos como «nulo» e «indefinido». Sin embargo, ahora se puede usar independientemente del modo de verificación de tipo.
Para asignar «indefinido» a cualquier propiedad, el indicador –strictNullChecks debe desactivarse. Mantener este indicador activado no permitirá asignar «indefinido» a miembros que no tengan un operador anulable.
El siguiente ejemplo representa lo que sucede si el indicador –strictNullChecks está habilitado y se ejecuta el siguiente código.
interface Student { name:string; age:number; } let s: Student = { name:'Ajay', age:null }
Lanzará el siguiente error:
Type 'null' is not assignable to type 'number'
Este error no aparecerá si tenemos el indicador –strictNullChecks desactivado. El indicador strictNullChecks protege de hacer referencia a valores nulos o indefinidos en el código. Se puede habilitar agregando el indicador –strictNullChecks como una opción al compilador de la línea de comandos o agregándolo al archivo tsconfig.json .
Hay una diferencia entre el tipo Anulable y «opcional». En “opcional”, proporcionamos algún valor predeterminado al miembro o dejamos que no se considere como miembro. Sin embargo, si a algún miembro se le asigna opcional y luego se le asigna un valor como «nulo» o «indefinido», arrojará un error.
interface Student { name:string; age?:number; } let s: Student = { name:'Ajay', age:null }