// My function does X and Y.
// @params {object} parameters An object containing the parameters
// @params {function} callback The callback function
function(parameters, callback) {
}
Mas como descrevo como o objeto de parâmetros deve ser estruturado? Por exemplo, deve ser algo como:
{
setting1 : 123, // (required, integer)
setting2 : 'asdf' // (optional, string)
}
javascript
jsdoc
Andy Hin
fonte
fonte
action
nome, escrevo `foo = ({arg1, arg2, arg2}) => {...}`. Edit: question here stackoverflow.com/questions/36916790/…Até agora, existem 4 maneiras diferentes de documentar objetos como parâmetros / tipos. Cada um tem seus próprios usos. Apenas 3 deles podem ser usados para documentar valores retornados.
Para objetos com um conjunto conhecido de propriedades (Variante A)
Essa sintaxe é ideal para objetos que são usados apenas como parâmetros para esta função e não exigem descrição adicional de cada propriedade. Ele pode ser usado para
@returns
bem .Para objetos com um conjunto conhecido de propriedades (Variante B)
Muito úteis são os parâmetros com sintaxe de propriedades :
Essa sintaxe é ideal para objetos que são usados apenas como parâmetros para esta função e que exigem descrição adicional de cada propriedade. Isso não pode ser usado para
@returns
.Para objetos que serão usados em mais de um ponto na origem
Nesse caso, um @typedef é muito útil. Você pode definir o tipo em um ponto da sua origem e usá-lo como um tipo para
@param
ou@returns
ou outras tags JSDoc que podem fazer uso de um tipo.Você pode usar isso em uma
@param
tag:Ou em um
@returns
:Para objetos cujos valores são todos do mesmo tipo
O primeiro tipo (string) documenta o tipo de chave que no JavaScript sempre é uma string ou, pelo menos, sempre será coagida a uma string. O segundo tipo (número) é o tipo do valor; isso pode ser de qualquer tipo. Essa sintaxe também pode ser usada
@returns
.Recursos
Informações úteis sobre os tipos de documentação podem ser encontradas aqui:
https://jsdoc.app/tags-type.html
PS:
para documentar um valor opcional, você pode usar
[]
:ou:
fonte
{{dir: A|B|C }}
?{[myVariable]: string}
Vejo que já existe uma resposta sobre a tag @return, mas quero fornecer mais detalhes sobre ela.
Primeiro, a documentação oficial do JSDoc 3 não fornece exemplos sobre o @return para um objeto personalizado. Consulte https://jsdoc.app/tags-returns.html . Agora, vamos ver o que podemos fazer até que algum padrão apareça.
A função retorna o objeto em que as chaves são geradas dinamicamente. Exemplo:
{1: 'Pete', 2: 'Mary', 3: 'John'}
. Geralmente, iteramos sobre esse objeto com a ajuda defor(var key in obj){...}
.Possível JSDoc de acordo com https://google.github.io/styleguide/javascriptguide.xml#JsTypes
A função retorna o objeto em que as chaves são constantes conhecidas. Exemplo:
{id: 1, title: 'Hello world', type: 'LEARN', children: {...}}
. Podemos facilmente acessar propriedades desse objeto:object.id
.Possível JSDoc de acordo com https://groups.google.com/forum/#!topic/jsdoc-users/TMvUedK9tC4
Falsificá-lo.
O montante todo.
Defina um tipo.
De acordo com https://google.github.io/styleguide/javascriptguide.xml#JsTypes
O tipo de registro.
fonte
Para
@return
uso de tags{{field1: Number, field2: String}}
, consulte: http://wiki.servoy.com/display/public/DOCS/Annotating+JavaScript+using+JSDocfonte
Fonte: JSDoc
fonte
Há uma nova
@config
tag para esses casos. Eles apontam para o anterior@param
.fonte
@config
tag? Não encontrei nada no usejsdoc.org , e esta página sugere@config
que foi preterido.@config
está obsoleto neste momento. YUIDoc recomenda o uso@attribute
.