Exponerar Typescript-kompilatorn standardvärdet för JsDoc @param?
Jag förväntade mig att kunna extrahera standardvärdet för en JsDoc-param men jag kan faktiskt inte hitta standardvärdet på JsDoc-noden. Till exempel, ge detta:
/** * @param [foo=42] Detta är foo! */
Jag skulle vilja extrahera '42' från noden. Ändå hittar jag inget standardvärdesfält på ts-noden:
Det exponerar isBracketed men jag kan inte hitta 42. Typescript hävdar dock att det stöder standardargument i JsDoc:
https://github.com/Microsoft/TypeScript/wiki/JSDoc-support-in-JavaScript#param-and-returns
Ändå verkar jag inte kunna hitta de exponerade i AST... :<
Innan jag rapporterar ett fel tänkte jag att jag skulle kolla runt och se om någon vet den hemliga handskakningen.
Svar #1
Nej, det finns inte för närvarande i AST. Parsern hoppar för närvarande över uttrycket utan att lagra returvärdet någonstans.
// May have an optional default, e.g. '[foo = 42]'
if (parseOptionalToken(SyntaxKind.EqualsToken)) {
parseExpression();
}
Källa
