如何在Webstorm中对抗大量未解决的变量警告
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Webstorm中对抗大量未解决的变量警告相关的知识,希望对你有一定的参考价值。
好的,我有一个从ajax获取数据的函数:
function getData(data){
console.log(data.some_unres_var);
}
Webstorm说some_unres_var
是未解决的变量。我不知道如何处理这么多警告。
我看到几个选项:
- 压制警告;
- 添加带有字段的json源文件(更多details);
- 使用类似数组的语法:
data['some_unres_var']
(但是jslint
警告我不要这样做); - ???
Webstorm也让我为“数据”创建命名空间(添加像/** @namespace data.some_unres_var*/
这样的注释),创建这样的字段或重命名它。
答案
使用JSDoc:
/**
* @param {{some_unres_var:string}} data
*/
function getData(data){
console.log(data.some_unres_var);
}
另一答案
JSDoc对象。然后是其成员。
/**
* @param data Information about the object.
* @param data.member Information about the object's members.
*/
function getData(data){
console.log(data.member);
}
@property
用于局部变量(非参数)- 在PyCharm中测试过。 @Nicholi证实它适用于Webstorm。
- Andreas建议的
{{ member:type }}
语法可能与Django模板冲突。 - 感谢Johnny Buchanan的qazxsw poi引用了qazxsw poi。
要记录对象数组,请使用answer括号作为JSDoc @param wiki:
[]
另一答案
所有其他答案对于一般情况都是不正确的。如果你没有将suggests作为参数怎么办?那你没有JSDoc:
/**
* @param data
* @param data.array_member[].foo
*/
WebStorm将警告“result.entries”是一个未解析的变量(字段)。
一般的解决方案是添加一个data
声明:
function niceApiCall(parameters) {
const result = await ... // HTTP call to the API here
for (const e of result.entries) {
.. // decorate each entry in the result
}
return result;
}
另一答案
使用带有匿名函数表达式的虚拟js文件返回json文字,如@namespace
所写,可能是一个解决方案。我还建议创建一个保存此json值的伪变量,并将此var用作@param注释的值,以使WebStorm知道实际类型是什么。喜欢:
function niceApiCall(parameters) {
/** @namespace result.entries **/
const result = await ... // HTTP call to the API here
for (const e of result.entries) {
.. // decorate each entry in the result
}
return result;
}
另见http://devnet.jetbrains.com/message/5366907
以上是关于如何在Webstorm中对抗大量未解决的变量警告的主要内容,如果未能解决你的问题,请参考以下文章
带有 Apollo-Client 3 警告的 WebStorm 未知指令 @client