Jak udokumentować metodę w JavaScript przy użyciu JSDoc, gdy typ parametru można mieszać?Jak udokumentować JSDoc z mieszanym typem parametru?
Mam metodę na obiekcie dialogowym, w którym mogę wyświetlać HTML lub moje własne obiekty widoczne. Metoda JSDoc wygląda następująco:
/**
* Can pass in viewable object, or some HTML element
*
* @param viewable viewable {Viewable} or HTML element {HTMLElement} or String {string}
* @param {Boolean} cancelable is cancellable
* @param title string or data object of String and Id {Title:String, Id:String} for setting HTML id value
* @param {Array} actions array of functions actions display buttons on the bottom connecting to the passed in functions
* @param {String} size mode. Can be mini,small,medium,large,maxi. Or of type {width:number, height:number}
* @param {Number} zindex starting z-order. Note: first level dialog = 10,11,12, second level dialog 13,14,15 etc.
*/
Dialog.showElement = function(viewable, cancelable, title, actions, mode, zindex){
..
}
Ponieważ JS nie pozwala metoda przeciążenia, muszę stworzyć tego typu metod, gdzie parametr w metodzie mogą być dwie rozbieżne rodzaje. Czy istnieje sposób udokumentowania tego w JSDoc, czy też JSDoc pozwala ci tylko dokumentować param z jednym typem?
Również, w jaki sposób można dokumentować parametr typu {Title:String, Id:String}
? Oznacza to, że obiekt przekazany, który nie jest typu. Quasi, obiekt JSON.
To może nie być częścią oryginalnej specyfikacji JSDoc (nie wiem), ale spójrz na ten artykuł, który wyjaśnia, jak opisywać JS dla kompilatora Google Closure: https://developers.google. com/closure/compiler/docs/js-for-compiler # types. Ma również przykład "typów rekordów". –