2014-09-08 20 views
5

ho definito un @callback in questo modo:Come definire una funzione come implementazione di callback in JSDoc?

/** 
* @callback MyClass~Handler 
* @param {string} target 
* @param {Options} options - Original options 
*/ 

Io lo uso per definire la mia classe di prototipo:

/** 
* @param {string} name - The name 
* @param {MyClass~Handler} handler 
* @private 
*/ 
MyClass.prototype._builder = function(name, handler) { //... 

Ma come dire JSDoc che la seguente funzione ha la stessa definizione il mio MyClass~Handler (qualcosa che sarebbe come @isacallback nel seguente codice)?

/** 
* Default handler 
* @isacallback {MyClass-Handler} 
* @private 
*/ 
MyClass.prototype._defaultHandler = function(target, options) { // ... 

risposta

0

non ho ancora testato questo, ma dal momento che @callback definisce solo un tipo, non poteva si utilizzare la dichiarazione @type?

In altre parole:

/** 
* Default handler 
* @type {MyClass-Handler} 
* @private 
*/ 
MyClass.prototype._defaultHandler = function(target, options) { // ... 

Vedi http://usejsdoc.org/tags-type.html per ulteriori informazioni @type.

+0

Non proprio, perché il '@ tipo' definisce una classe (un tipo come hai detto tu), quindi non posso descrivere i parametri di funzione ad esempio con quell'annotazione ... –

+0

Penso che tu sia frainteso:' @ type' non è usato per definire una classe (questo è ciò che '@ typedef' è per). Il '@ callback' definisce il tipo (poiché' @ callback' è fondamentalmente solo '@ typedef' limitato alle funzioni), e quindi si fa riferimento a quella definizione usando' @ type' (il modo in cui si desidera si potrebbe con il non esistente) ' @ isacallback' tag). – machineghost

Problemi correlati