Vea esta captura de pantalla:
En este caso, temp
ya está declarado, pero es posible que nunca se haya asignado. El if-check impide su uso, si no se ha asignado, por lo que esta advertencia de compilación puede ser innecesaria
Gracias
Entiendo su punto, pero la mayoría de las veces las declaraciones "si" se utilizan para verificar el valor de una variable, no para ver si se asignó. Esta advertencia es útil porque la mayoría de las veces (al menos en mi experiencia y en la mayoría de los códigos profesionales que he visto) esa situación no es la intención del programador.
Como nota al margen, dado que "temp" solo se define dentro de esa declaración if, puede fusionar sus dos condicionales (a menos que path.normalize () pueda devolver un valor falso, en cuyo caso puede simplemente asignar un valor falso a temp en su declaración o en la rama else de todos modos).
let temp: string | undefined
parece más preciso para ese código en el mundo de comprobaciones nulas estrictas y también corrige el error.
Un fragmento de código que se pueda copiar y pegar en un búfer de texto en lugar de una captura de pantalla de un IDE suele ser mucho más útil.
Comentario más útil
let temp: string | undefined
parece más preciso para ese código en el mundo de comprobaciones nulas estrictas y también corrige el error.