根据Grunt,JSDoc不正确

时间:2016-02-22 10:30:13

标签: javascript gruntjs jsdoc

我的grunt任务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       标签标题"类型"和文字" {{sku:string,stockColor:string,
      validTo:string,price:string,availableStock:string} []}":       无效的类型表达式" {sku:string,stockColor:string,
      validTo:string,price:string,avail ableStock:string} []":       预期"!"," =","?"," |"或输入结束但是" ["找到。

    
  

据我所知,JSDoc对我来说是正确的。也许grunt jsdoc编译器存在问题?

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

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

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

1 个答案:

答案 0 :(得分:1)

这是jsdoc本身的错误/不支持的语法(尝试使用jsdoc 3.4.0),而不是grunt。您应该在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 = [];