Tslint: タイプ「any」の式の安全でない使用。

作成日 2018年01月05日  ·  3コメント  ·  ソース: palantir/tslint

バグレポート

  • __TSLintバージョン__:5.8.0
  • __TypeScriptバージョン__:2.6.2
  • __TSLintの実行:__:Node.js API

リンティングされているTypeScriptコード

const json: {} | null | undefined = JSON.parse(queryData);

構成

{
    "defaultSeverity": "error",
    "extends": [
        "tslint:all"
    ],
    "rules": {
    }
}

実際の動作

タイプ「any」の式の安全でない使用。

予想される行動

const json: any = JSON.parse(queryData);はできますが、ルールはありません。
「any」型の式を安全に使用せずにJSON.parseの戻り値を取得するにはどうすればよいですか。

Not A Bug

全てのコメント3件

ここで何を期待しているのかよくわかりません... anyを使用したいが、 no-anyルールを維持したいですか? それは完全に矛盾しています。 クエリデータの一致する型を宣言してからconst json: YourType = JSON.parse(queryData);実行するのを妨げるものは何ですか?

返信ありがとうございます。 はっきりしなかった
私の目標は、no-anyルールを維持することであり、警告なしにJSON.parse(queryData)の結果を取得する方法を検索します。

今私はjsonをします:any = JSON.parse(queryData); =>しかし、私はno-anyを無効にする必要があります。
私があなたの解決策を実行する場合:const json:YourType = JSON.parse(queryData);
次に、安全でないルールを無効にする必要があります。

これが、最初のアプローチで:const json:{} |を試す理由です。 null | undefined = JSON.parse(queryData); ドキュメントhttps://palantir.github.io/tslint/rules/no-unsafe-any/=>を見ると、no-unsafe-anyとnoanyの警告は表示されません。

ただし、JSON.parseは文字列などの他のタイプも返す可能性があるため、このソリューションは1つではありません。
私は実際に解決策があるかどうかはわかりませんが、前に皆さんに専門家に尋ねることを好みます。

@ohrrkanあなたのユースケースは良いものです-通常、人々がすることはJSON.parse(queryData) as MyTypeです。 TSLint側でのアクションに対する需要はあまりなかったため、これを今のところアクション不可能として閉じます。 お役に立てば幸いです。

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