Tslint: 不安全地使用“any”类型的表达式。

创建于 2018-01-05  ·  3评论  ·  资料来源: palantir/tslint

错误报告

  • __TSLint 版本__:5.8.0
  • __打字稿版本__: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);

感谢您的回复。 我不清楚
我的目标是保持无任何规则,我搜索一种方法来在没有警告的情况下获取 JSON.parse(queryData) 的结果。

现在我做 json: any = JSON.parse(queryData); => 但我必须禁用 no-any。
如果我做你的解决方案: const json: YourType = JSON.parse(queryData);
然后我将不得不禁用 no-unsafe-any 规则。

这就是为什么在我的第一种方法中我尝试了 : const json: {} | 空| 未定义 = JSON.parse(queryData); 查看文档 https://palantir.github.io/tslint/rules/no-unsafe-any/ => 我不会有 no-unsafe-any 和没有任何警告。

但是 JSON.parse 也可以返回其他类型,如字符串,所以这个解决方案不是一个。
我实际上不确定是否有解决方案,但在请教你们专家之前。

@ohrrkan你的用例是一个很好的用例 - 通常人们所做的是JSON.parse(queryData) as MyType 。 暂时将其关闭为不可操作的,因为对 TSLint 的任何操作的需求并不多。 希望有帮助!

此页面是否有帮助?
0 / 5 - 0 等级