如何在JSDoc中注释带有可选属性的匿名对象

21

我有一个JavaScript类,它接受一个类型为Object的参数,具有定义好的属性集合。当我进行注释时,Closure Compiler会很高兴:

我有一个 JavaScript 类,需要传入一个类型为 Object 的参数,该参数包含一组已定义的属性。当我像下面这样添加注释,Closure Compiler 就不会报错:

@constructor
@param {{ subview:BaseView, el:(jQuery|Element), title:String }} options
var MyView = function(options){ }

我希望使title键是可选的,并将title值传递给我的类的一些实例,并在没有此键时实现回退行为,因此我对我的类进行了注释:

@constructor
@param {{ subview:BaseView, el:(jQuery|Element), title:String= }} options
var MyView = function(options){ }

现在Closure Compiler报错了:

警告 - 错误的类型注释。期望一个闭合的}

我查看了为Closure Compiler注释JavaScript,但是我没有看到任何一行描述这种用例。


2
我认为=修饰符仅适用于函数参数,而不适用于记录类型属性。 - Bergi
1个回答

25
@param {{ subview:BaseView, el:(jQuery|Element), title:(string|undefined) }} 选项

12
应该用title?:string,而不是|undefined - Noitidart
1
不是针对Closure Compiler的。 - Tyler
@Noitidart 谢谢,对我有用 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接