Typescript: 不要なコンパイル警告:TS2454

作成日 2017年09月24日  ·  3コメント  ·  ソース: microsoft/TypeScript

このスクリーンショットを参照してください:

screenshot 2017-09-23 15 41 31

この場合、 tempはすでに宣言されていますが、割り当てられていない可能性があります。 if-checkは、割り当てられていない場合は使用できないため、このコンパイル警告は不要な場合がありますか?

ありがとう

Question

最も参考になるコメント

let temp: string | undefinedは、strict-null-checksの世界ではそのコードの方が正確であるように思われ、エラーも修正されます。

全てのコメント3件

私はあなたの主張を理解していますが、ほとんどの場合、「if」ステートメントは変数の値をチェックするために使用され、変数が割り当てられているかどうかを確認するためには使用されません。 多くの場合(少なくとも私の経験と私が見たほとんどの専門的なコードでは)、その状況は実際にはプログラマーの意図ではないため、この警告は役に立ちます。

ちなみに、「temp」はそのifステートメント内でのみ定義されているため、2つの条件をマージできます(path.normalize()が偽の値を返すことができる場合を除きます。その場合、偽の値をtempに割り当てることができます。とにかく宣言またはelseブランチで)。

let temp: string | undefinedは、strict-null-checksの世界ではそのコードの方が正確であるように思われ、エラーも修正されます。

IDEからのスクリーンショットの代わりに、コピーしてテキストバッファに貼り付けることができるコードのスニペットは、一般的にはるかに役立ちます。

このページは役に立ちましたか?
0 / 5 - 0 評価