javascript – 使用Google Closure的@typedef标记

谷歌的Closure编译器有一个“@typedef”标签,但你可以在你的代码中使用它们吗? (我知道它会起作用,但它不受欢迎吗?)

所以这是我的类型

/**
 * The plan object's typedef
 * @typedef {Object}
 */
Types.Plan = {
    "style": "bordersmall","width": "50%","height": "40%","x": "20%","y": "10%","clickable": true,"moveable": true
};

然后我可以在我的JSDoc注释中使用该类型.

这允许我的IDE在传递的参数上给我自动完成功能

因此声明的对象不会在代码中的任何位置使用.

/**
 * The Instructions class
 * @param   {Types.Plan}    plan        Plan for position and dimension
 * @param   {Manager}       manager     The manager
 * @param   {Instructions}  parent      This widget's parent's instructions
 * @return  {Instructions}              Returns the new instructions object
 */
Instructions = function(plan,manager,parent){
    plan.
}

这样可以吗?或者有更好的解决方案吗?

解决方法

@typedef用于定义类型,而不是将对象标记为特定类型.如果要将某个变量标记为特定类型,请使用@type {< type>}注释.

@typedef用于定义与@type {…}构造一起使用的“short-hand”类型.

请注意,对象的属性当前未在Closure Compiler中输入,即使已标记,但可能在将来.

相关文章

什么是深拷贝与浅拷贝?深拷贝与浅拷贝是js中处理对象或数据...
前言 今天复习了一些前端算法题,写到一两道比较有意思的题:...
最近在看回JavaScript的面试题,this 指向问题是入坑前端必须...
js如何实现弹出form提交表单?(图文+视频)
js怎么获取复选框选中的值
js如何实现倒计时跳转页面