Wie dokumentiere ich einen String-Typ in jsdoc mit begrenzten möglichen Werten?
Ich bin eine Funktion akzeptiert einen string-parameter. Dieser parameter kann nur ein paar definierte Werte möglich. Was ist der beste Weg, um Dokument gleich? Sollte shapeType definiert werden als enum-oder TypeDef-oder etwas anderes?
Shape.prototype.create = function (shapeType) {
//shapeType can be "rect", "circle" or "ellipse"...
this.type = shapeType;
};
Shape.prototype.getType = function (shapeType) {
//shapeType can be "rect", "circle" or "ellipse"...
return this.type;
};
Den zweiten Teil des Problems ist, dass die möglichen Werte der shapeType
ist nicht bekannt, in der Datei definiert shapeType
als was auch immer Sie vorschlagen. Es gibt mehrere Dateien, die dazu beigetragen, die durch mehrere Entwickler, die vielleicht hinzufügen, um die möglichen Werte der shapeType
.
PS: Bin mit jsdoc3
InformationsquelleAutor der Frage Shamasis Bhattacharya | 2013-09-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie zum deklarieren einer dummy-enum:
Müssen Sie zumindest erklären, die enum zu JSDOC, für diese, obwohl. Aber der code ist sauber und erhalten Sie auto-Vervollständigung in WebStorm.
Mehrere Dateien problem aber nicht auf diese Weise gelöst werden.
InformationsquelleAutor der Antwort Sebastian
Als der Ende 2014 in jsdoc3 haben Sie die Möglichkeit, zu schreiben:
Natürlich wird dies nicht so sein, wie wiederverwendbare als einen eigenen enum-aber in vielen Fällen eine dummy-enum ist ein overkill, wenn es nur eine Funktion.
Siehe auch: https://github.com/jsdoc3/jsdoc/issues/629#issue-31314808
InformationsquelleAutor der Antwort B12Toaster
Ich glaube nicht, dass es eine formale Schreibweise zulässigen Werte in JSDoc.
Man kann sicherlich so etwas schreiben
@param {String('up'|'down'|'left'|'right')}
wie Benutzer b12toaster erwähnt.Aber, unter Verweis aus APIDocjshier ist, was ich zum schreiben benutzen eingeschränkte Werte, aka allowedValues.
Oh ja, ich bin mit ES6.
InformationsquelleAutor der Antwort Alan Dong
Dies ist, wie der Closure Compiler unterstützt: Sie können "@enum" zu definieren, die einem eingeschränkten Typ. Sie haben tatsächlich nicht zu definieren die Werte in der enum-definition. Zum Beispiel, könnte ich definieren eine "integer" - Typs, wie:
Int ist in der Regel zuordenbar "Anzahl" (es ist eine Zahl), sondern "Anzahl" nicht zuordenbar "Int" ohne einigen Zwang (aus einem Guss).
InformationsquelleAutor der Antwort John