我发现自己在NodeJS中使用了许多与以下类似的功能:
socket.on('view:create', function (data) {
//data = { structure of data object here }
....
})
我基本上是添加注释来记住什么是数据对象。
如何指定我作为输入接收的对象的结构,以便在我写入data.key
的函数内部时,它将该键识别为有效?
答案 0 :(得分:1)
我使用为Google Closure建议的评论方式。
它与不同语言的风格非常相似,有助于在现代IDE中自动完成,并且使用JsDoc生成文档也很容易。
对于你的例子,这可以解决问题:
@param {{myNum: number, myObject}}
答案 1 :(得分:0)
我猜你可以使用默认对象而不是用你的对象扩展它:
function( my_object ){
...
var default_object = {
a: 1,
b: 2
}
_.extend( default_object, my_object ); // underscore _.extend
default_object.a // always defined
...
}
或者你可以在你的函数中爆炸你的对象并使用逗号分隔的参数:
function( arg1, args2, /*, other_args */ ){
var other_args = [].slice.call(arguments, 2);
}