1. ホーム
  2. angular

[解決済み] Tslint - type trivially inferred - なぜここに型を入れるのはバッドプラクティスなのですか?

2023-01-08 06:42:31

質問

VSCodeで、以下のコードをタイプで追加すると、リンターであるtslintが文句を言います。

serverId: number = 10;

そして、次のようなメッセージを出す。

[tslint] 数値リテラルから推測される数値の型、remove 型アノテーションを削除してください (参照不可)

型'number'を削除すると、メッセージは消えます。

なぜここに型情報を入れるのはバッドプラクティスなのでしょうか?

どのように解決するのですか?

悪い習慣ではありませんが serverId: number = 10 は冗長です、なぜなら number の型は 推論 というプロパティが割り当てられたとき これは、TSLintの no-inferrable-types が警告しています。

コンパイラが簡単に推測できるような明示的な型は、コードをより冗長にします。

という可能性がない限り serverId プロパティが最初は未定義で、後で定義される可能性がある場合(例えば constructor 関数で)定義されるかもしれません。 number は安全に省略することができます。

この方法が最も効果的なのは noImplicitAny この方法では、推論されなかったために誤って型が省略される可能性がないためです。