このスクリーンショットを参照してください:
この場合、 temp
はすでに宣言されていますが、割り当てられていない可能性があります。 if-checkは、割り当てられていない場合は使用できないため、このコンパイル警告は不要な場合がありますか?
ありがとう
私はあなたの主張を理解していますが、ほとんどの場合、「if」ステートメントは変数の値をチェックするために使用され、変数が割り当てられているかどうかを確認するためには使用されません。 多くの場合(少なくとも私の経験と私が見たほとんどの専門的なコードでは)、その状況は実際にはプログラマーの意図ではないため、この警告は役に立ちます。
ちなみに、「temp」はそのifステートメント内でのみ定義されているため、2つの条件をマージできます(path.normalize()が偽の値を返すことができる場合を除きます。その場合、偽の値をtempに割り当てることができます。とにかく宣言またはelseブランチで)。
let temp: string | undefined
は、strict-null-checksの世界ではそのコードの方が正確であるように思われ、エラーも修正されます。
IDEからのスクリーンショットの代わりに、コピーしてテキストバッファに貼り付けることができるコードのスニペットは、一般的にはるかに役立ちます。
最も参考になるコメント
let temp: string | undefined
は、strict-null-checksの世界ではそのコードの方が正確であるように思われ、エラーも修正されます。