Veuillez voir cette capture d'écran:
Dans ce cas, temp
est déjà déclaré, mais peut ne jamais avoir été attribué. La vérification if empêche de l'utiliser, si elle n'a pas été attribuée, donc cet avertissement de compilation peut être inutile?
Merci
Je comprends votre point de vue, mais la plupart du temps, les instructions «si» sont utilisées pour vérifier la valeur d'une variable, pas pour voir si elle a été attribuée. Cet avertissement est utile car le plus souvent (du moins d'après mon expérience et dans la plupart des codes professionnels que j'ai vus), cette situation n'est en effet pas l'intention du programmeur.
En remarque, puisque "temp" n'est défini que dans cette instruction if, vous pouvez fusionner vos deux conditions (à moins que path.normalize () puisse renvoyer une valeur falsifiée, auquel cas vous pouvez simplement assigner une valeur falsifiée à temp dans son déclaration ou dans la branche else de toute façon).
let temp: string | undefined
semble plus précis pour ce code dans le monde strict-null-checks, et corrige également l'erreur.
Un extrait de code qui pourrait être copié et collé dans une mémoire tampon de texte au lieu d'une capture d'écran d'un IDE est généralement beaucoup plus utile.
Commentaire le plus utile
let temp: string | undefined
semble plus précis pour ce code dans le monde strict-null-checks, et corrige également l'erreur.