En este bloque de código, ¿cuál es el .value!
y @typescript-eslint/no-non-null-assertion
haciendo? La documentación es demasiado abstracta para que yo la conecte al contexto del comportamiento de este botón.
const submitButton = ref<HTMLButtonElement | null>(null); //Disable button /* eslint-disable @typescript-eslint/no-non-null-assertion */ submitButton.value!.disabled = true;
PD Solo en programación puedes decir "no-non-null" con una cara seria.
El !
es una aserción no nula mecanografiada. Dice mecanografiado "Sé que parece que el value
puede ser nulo, pero créeme, no lo es". Esto puede ser útil si sabe algo que TypeScript no sabe (en este caso, presumiblemente sabe que la referencia se completará antes de que se ejecute este código), pero esencialmente desactiva la verificación de tipos en esta línea y, por lo tanto, puede introducir errores accidentalmente.
Dado que la afirmación no nula es arriesgada, existe una regla de pelusa que se puede usar para prohibir su uso. La regla de pelusa, cuando está habilitada, marcará esta línea como un problema. La solución típica sería escribir código para verificar si hay nulos, de modo que no se necesite ninguna afirmación. Pero si lo desea, puede decirle a eslint que no marque esta línea mediante un comentario especial como /* eslint-disable @typescript-eslint/no-non-null-assertion */
.
Entonces, en resumen, estas líneas dicen "Oye, mecanografiado, no marques esto. Oye, eslint, no marques esto".