Typescript编译器是否公开JsDoc @param的默认值?

时间:2019-01-19 23:41:55

标签: typescript typescript-compiler-api

我希望能够提取JsDoc参数的默认值,但实际上无法在JsDoc节点上找到默认值。例如,给这个:

/ **  * @param [foo = 42]这是foo!  * /

我想从节点中提取“ 42”。但是我在ts节点上找不到默认值字段:

enter image description here

它公开了isBracketed,但是我找不到42。 Typescript确实声称支持默认的JsDoc参数:

https://github.com/Microsoft/TypeScript/wiki/JSDoc-support-in-JavaScript#param-and-returns

但是我似乎无法在AST中找到暴露对象::<

在记录错误之前,我想过我会四处询问,看看是否有人知道秘密握手。

1 个答案:

答案 0 :(得分:1)

否,它当前不在AST中。解析器当前跳过该表达式,而没有将返回值存储在任何地方。

// May have an optional default, e.g. '[foo = 42]'
if (parseOptionalToken(SyntaxKind.EqualsToken)) {
    parseExpression();
}

Source