JSDoc Klasse Dokumentieren
lima-city → Forum → Die eigene Homepage → HTML, CSS & Javascript
code
dokumentation
entwicklungsumgebung
frage
funktion
funktioniert gehen
gleichen effekt
http
komplexere struktur
log
ordentlich kommentieren
perfekter dokumentation
projekt
richtig macht
string
type
url
versuch
welt
wissen
-
Hallo,
ich wollte mein JS Quelltext ordentlich kommentieren. Dabei bin ich auf JSDoc gestoßen.
Ich habe mir zwar die Dokumentation zu JSDoc durchgelesen, jedoch versteh ich nicht wie ich meine Klasse dokumentieren soll, sodass die Autovervollständigung unter Webstorm funktioniert.
Gehen wir mal von diesem Codebeispiel aus:
/** @namespace */ var meinnamespace = { /** * @name MeineKlasse * @class */ MeineKlasse: function(){ /** @member {string} eigenschaftA */ this.eigenschaftA = "Hallo"; this.methodA = function(){ return "Hallo Welt"; } } };
Jedoch funktioniert das nicht so richtig. Ich hab zimlich viel ausprobiert, bis mir jetzt die Ideen ausgegangen sind, wie man das richtig macht.
Ein Versuch mit @typedef {Object} meinnamespace.MeineKlasse war zimlich erfolgreich. Die Eigenschaften konnte ich mit @property {string} eigenschaftA erfolgreich dokumentieren, jedoch wusste ich dann nicht wie ich die Funktion beschreiben soll.
Der Code um den es eigentlich geht findet ihr hier:
http://zadagu.ddns.net/gitweb/?p=kreda-mobile.git;a=blob;f=kreda-lib.js;h=ed5102d17513b97eeaf423df43f5380979eeed69;hb=70ca61dda43741e71925155ecf7e9d0898a7d7c1#l477
Da ist auch noch einiges auskommentiert, waren auch alles Sachen die ich probiert hatte. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Autovervollständigung von Webstorm funktioniert auch mit perfekter Dokumentation nicht wirklich. Ich hab sie weder mit Webstorm 7, 8 oder 9 zum laufen gebracht.
Allerdings hat unser Projekt auch jenseits der 1000 JS Files und eine Welten komplexere Struktur^^
/** * @namespace */ var myNamespace = { /** * @class */ MyClass: function () { /** * The name of someone * * @type {string} */ this.name = 'Peter Peters'; /** * Greets the word you provide * * @method * @param {string} aWord A word to say * @returns {string} A greeting */ this.greet = function (aWord) { return 'Hello ' + aWord; } }, /** * Some example value * * @type {myNamespace.MyClass} */ someValue: new myNamespace.MyClass(), /** * Test function * * @type {function} */ someFunction: function () { console.log(myNamespace.someValue); } };
Das ist ein Beispiel einer validen Dokumentation von JSDoc. Funktioniert in der generierten Doku auch mit den Verlinkungen zu den richtigen klassen und so weiter, alles gut.
Für Funktionen kannst du @function benutzen, wenn es keinen bezug hat, oder @method wenn es in einen Namespace oder eine Klasse gehört. Du kannst auch @type {function} verwenden, hat den gleichen effekt. Du kannst die Funktionen dann noch mit @param und @returns ausschmücken.
Webstorm nutzt JSDoc mehr zum validieren als zum Autovervollständigen. Es zeigt an, wo du falsch typisiert angegebene Variablen in eine Funktion steckst, aber viel mehr auch nicht.
Versuch dich sonst mal an diesem Guide http://speakingjs.com/es5/ch29.html
Beantwortet das deine Frage? Wenn nicht musst du ein bisschen genauer werden.
Liebe Grüße -
Danke ggamee. Du hast schon meine Frage richtig verstanden. Genau das wollte ich wissen.
Schade das es Webstorm nicht gebacken bekommt. Ist ansonsten so eine schöne Entwicklungsumgebung. Naja da muss ich wohl damit leben. Vlt. wird das ja in der nächsten Version, auch wenn ich bis dahin wahrscheinlich das Projekt abgegeben habe.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage