Jshint/PhpStorm:“;未解析变量“;使用jquery.data()时

Jshint/PhpStorm:“;未解析变量“;使用jquery.data()时,jquery,phpstorm,jshint,jsdoc,Jquery,Phpstorm,Jshint,Jsdoc,Phpstorm一直告诉我有一个未定义的变量input.connectto Html: … JS: 以及: 我知道我可以忽略jshint中的一行,但是有没有办法用jsdoc纠正它,例如将input定义为对象相应地,正确的方法应该是使用@typedef定义实际的对象结构(如果以后在另一个地方重新使用它,则特别有用)和@type来声明特定变量的类型: /** * @typedef {Object} MyInputData * @property {string} connectto * @p

Phpstorm一直告诉我有一个未定义的变量
input.connectto

Html:

JS:

以及:

我知道我可以忽略jshint中的一行,但是有没有办法用jsdoc纠正它,例如将
input
定义为对象

相应地,正确的方法应该是使用
@typedef
定义实际的对象结构(如果以后在另一个地方重新使用它,则特别有用)和
@type
来声明特定变量的类型:

/**
 * @typedef {Object} MyInputData
 * @property {string} connectto 
 * @property {string} othervalue
 */

/** @type {MyInputData} */
var input = inputObj.data();
这一个(仅使用
@typedef
和变量名作为类型名)似乎也适用于PhpStorm:

/**
 * @typedef {Object} input
 * @property {string} connectto 
 * @property {string} othervalue
 */
var input = inputObj.data();

如果您使用的是jQuery(如
$('.b-showColorinList').data('connectto');
),为什么不使用
data(“connectto”)
?对不起,我把代码缩短了一点。当一个数据字段时,实际上有更多数据。修正了,现在我明白了——我只是在想——如果这不是任务关键型代码,或者不是经常执行的代码,或者需要立即执行而几乎没有延迟。。那么为什么不使用特定参数调用
data
方法呢?试试这个(JSDoc):
/***@typedef{Object}input*@property{String}connectto*@property{String}othervalue*/
——只需将其格式化好(注释不允许多行片段)
/**
 * @typedef {Object} MyInputData
 * @property {string} connectto 
 * @property {string} othervalue
 */

/** @type {MyInputData} */
var input = inputObj.data();
/**
 * @typedef {Object} input
 * @property {string} connectto 
 * @property {string} othervalue
 */
var input = inputObj.data();