const json: {} | null | undefined = JSON.parse(queryData);
{
"defaultSeverity": "error",
"extends": [
"tslint:all"
],
"rules": {
}
}
不安全地使用“any”类型的表达式。
我可以做const json: any = JSON.parse(queryData);
但我想遵守没有任何规则
如何在不安全使用“any”类型的表达式的情况下获得 JSON.parse 的返回值。
我真的不确定你在这里期待什么......你想使用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 的任何操作的需求并不多。 希望有帮助!