Ziel ist es, JSDoc-Dokumentation aus TypeScript-Code zu erhalten. Die Qualität der Dokumentation von TypeDoc (TypeScript-Dokumentationslösung) ist nicht akzeptabel, da die Dokumentation auf JS-Benutzer ausgerichtet ist und nicht mit Details überflutet werden sollte, die spezifisch für die TypScript-Implementierung (Schnittstellen usw.) sind.TypeScript streift Kommentare ab und verdirbt JSDoc-Dokumentation
Das Übertragen auf ES6 und das Generieren der Dokumentation aus JS-Dateien führen den größten Teil dazu aus. Bis auf die Eigenschaften, denen keine Werte zugewiesen sind. Wie es scheint,
class A {
/**
* @private
* @var _a
*/
private _a;
/**
* @public
* @var a
*/
public a = true;
}
wird transpiled zu
class A {
constructor() {
/**
* @public
* @var a
*/
this.a = true;
}
}
Während ich so etwas wie
class A {
constructor() {
/**
* @private
* @var _a
*/
/**
* @public
* @var a
*/
this.a = true;
}
}
oder
class A {
/**
* @private
* @var _a
*/
constructor() {
/**
* @public
* @var a
*/
this.a = true;
}
}
Wie können Kommentare (besonders JSDoc) erwarten vorgesehen sein für nicht zugeordnete Klassenmitglieder in TypeScript? Gibt es einen Trick, der dazu führen könnte, dass die Kommentare bestehen bleiben (auch wenn private _a;
im transpilierten Code nicht vorhanden ist)?
Darf ich fragen, warum Sie diese Funktionalität benötigen? Sicherlich gibt es Tricks und Workarounds, um diese Kommentare zu behalten, aber derzeit sehe ich absolut keinen Grund dafür. –
@JohnWhite Ich habe keine gute Möglichkeit gefunden, JSDoc-Dokumentation in TypeScript anders als von transpiliertem ES6 zu generieren. Und mit dieser Art von Verhalten bleibt ein Bündel von Eigenschaften undokumentiert. – estus