Posterior a consultar expertos en la materia, programadores de diversas áreas y maestros dimos con la respuesta al problema y la plasmamos en esta publicación.
Solución:
TS está haciendo su trabajo y te dice que window.document.getElementById("foobar")
PODRÍA devolver algo que es null
.
Si está absolutamente seguro de que #foobar
elemento SÍ existe en tu DOM, puedes mostrarle a TS tu confianza con un !
operador.
// Notice the "!" at the end of line
const myAbsolutelyNotNullElement = window.document.getElementById("foobar")!
O bien, puede agregar una verificación anulable en tiempo de ejecución para hacer feliz a TS
const myMaybeNullElement = window.document.getElementById("foobar")
myMaybeNullElement.nodeName // <- error!
if (myMaybeNullElement === null)
alert('oops');
else
// since you've done the nullable check
// TS won't complain from this point on
myMaybeNullElement.nodeName // <- no error
window.document.getElementById("foobar");
¿Está devolviendo un HTMLElement
o null
Como podría haber usado una declaración similar antes: window.document.getElementById("foobar").value
Mecanografiado se queja, es posible que ese valor no sea accesible y debe verificarlo explícitamente antes.
Para evitar esto puedes hacer lo siguiente:
const element = window.document.getElementById("foobar");
if (element !== null)
alert(element.value);
Nos puedes asistir nuestra labor exponiendo un comentario o dejando una valoración te lo agradecemos.