我的咕unt任务jsdoc遍历了这个jsdoc,它描述了一系列对象文字:

/**
 * @type {{sku:string,
 *      stockColor:string,
 *      validTo:string,
 *      price:string,
 *      availableStock:string}[]} data
 *
 */
var variations = [];


因此,来自Grunt的错误消息是:


  D:\ dev \ ngs-frontend> grunt jsdoc运行“ jsdoc:dist”(jsdoc)任务
  
  
    
      错误:无法解析源文件D:\ dev \ ngs-frontend \ src \ assets \ js \ modules \ content \ product-detail \ hse-productdetails.js的标签类型表达式
      标签标题为“ type”,文本为“ {{sku:string,stockColor:string,
      validTo:string,price:string,availableStock:string} []}“:
      类型表达式无效“ {sku:string,stockColor:string,
      validTo:string,价格:string,可用availableStock:string} []“:
      预期为“!”,“ =”,“?”,“ |”或输入结尾,但找到“ [”。
    
  


据我所知,JSDoc对我而言是正确的。也许jsdoc编译器有问题?

我正在定义对象文字的数组。据我所知:

{{name:value,name2:value2} []}

是描述这一点的正确方法。

最佳答案

这是jsdoc本身的错误/不受支持的语法(在jsdoc 3.4.0上尝试过),而不是笨拙。您可能应该向他们报告https://github.com/jsdoc3/jsdoc/issues/上的错误

支持语法@type { {a : String, b : Number} },但不支持@type { {a : String, b : Number}[] }

您可以使用@typedef解决此问题,例如:



/**
 * @typedef { {
 *      sku:string,
 *      stockColor:string,
 *      validTo:string,
 *      price:string,
 *      availableStock:string }} variation
 */

/**
 * @type {variation[]}
 */
var variations = [];

关于javascript - 根据Grunt错误的JSDoc,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35551289/

10-15 14:40