如何指定输入对象的预期结构?

问题描述 投票:0回答:2

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

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

我基本上添加一个注释来记住什么是数据对象。

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

javascript node.js documentation
2个回答
1
投票

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

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

举个例子,这可以解决问题:

@param {{myNum: number, myObject}}

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);
}
© www.soinside.com 2019 - 2024. All rights reserved.