0

我发现自己在 NodeJS 中使用了很多类似于以下的函数:

socket.on('view:create', function (data) {
    //data = { structure of data object here }
    ....
})

我基本上是在添加注释以记住数据对象是什么。

如何指定作为输入接收的对象的结构,以便在我编写的函数内部时data.key将密钥识别为有效?

4

2 回答 2

1

我使用Google Closure建议的评论风格。

它与不同语言的风格非常相似,有助于在现代 IDE 中自动完成,并且使用JsDoc 从中生成文档也很容易。

对于您的示例,这可以解决问题:

@param {{myNum: number, myObject}}
于 2013-08-10T21:54:18.173 回答
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);
}
于 2013-08-10T21:49:03.730 回答