2011-05-03 11 views
62

Según el wiki jsdoc para @param puede indicar un @param es opcional usando¿Cómo se indica el parámetro es opcional utilizando JSDoc en línea?

/** 
    @param {String} [name] 
*/ 
function getPerson(name) { 
} 

y se puede indicar un parámetro inline usando

function getPerson(/**String*/ name) { 
} 

Y puedo combinarlos como la siguiente, que funciona bien

/** 
    @param [name] 
*/ 
function getPerson(/**String*/name) { 
} 

Pero me gustaría saber si hay una manera de hacerlo todo en línea si es posible.

Respuesta

40

Encontré una manera de hacer esto usando Google Closure Compiler type expressions. Usted pone un signo igual después de que el tipo de este modo: function test(/**String=*/arg) {}

+8

WebStorm/IntellIDEA apoya esta notación –

+2

Sí, así que creo que su aceptación suficiente ganado para marcarlo como la respuesta . – studgeek

+4

@PeterAronZentai, agregaré WebStorm/IntelliIDEA lo admite como resultado de que puse una solicitud de funciones para :). Ahora admiten la mayoría de las expresiones del tipo de compilador de cierres de Google, lo que es genial. – studgeek

47

Después de algo de investigación hasta que encontré estos son bien también

/** 
* @param {MyClass|undefined} 
* @param {MyClass=} 
* @param {String} [accessLevel="author"] The user accessLevel is optional. 
* @param {String} [accessLevel] The user accessLevel is optional. 
*/ 

Sólo un poco más atractiva visualmente que function test(/**String=*/arg) {}

+7

Esas son válidas (y documentadas en la ayuda de JSDoc), pero no están ** en línea **, que es lo que estaba buscando. – studgeek

+0

La pregunta es sobre la notación JSDoc en línea. Esta es información interesante, pero no responde la pregunta –

41

De official documentation:

Parámetro opcional

Un parámetro opcional llamado foo.

@param {number} [foo] 
// or: 
@param {number=} foo 

Un foo parámetro opcional con un valor por defecto 1.

@param {number} [foo=1] 
+2

. Estaba preguntando cómo hacerlo en línea. El ejemplo que está proporcionando parece ser el mismo que el que mostré en mi pregunta. – studgeek

Cuestiones relacionadas