@@ -1146,7 +1146,7 @@ declare namespace ts {
11461146 }
11471147 export interface ExpressionWithTypeArguments extends NodeWithTypeArguments {
11481148 kind : SyntaxKind . ExpressionWithTypeArguments ;
1149- parent : HeritageClause | JSDocHeritageTag ;
1149+ parent : HeritageClause | JSDocAugmentsTag | JSDocImplementsTag ;
11501150 expression : LeftHandSideExpression ;
11511151 }
11521152 export interface NewExpression extends PrimaryExpression , Declaration {
@@ -1626,11 +1626,17 @@ declare namespace ts {
16261626 kind : SyntaxKind . JSDocTag ;
16271627 }
16281628 /**
1629- * Represents @augments @extends and @implements
16301629 * Note that `@extends` is a synonym of `@augments`.
1630+ * Both tags are represented by this interface.
16311631 */
1632- export interface JSDocHeritageTag extends JSDocTag {
1633- kind : SyntaxKind . JSDocAugmentsTag | SyntaxKind . JSDocImplementsTag ;
1632+ export interface JSDocAugmentsTag extends JSDocTag {
1633+ kind : SyntaxKind . JSDocAugmentsTag ;
1634+ class : ExpressionWithTypeArguments & {
1635+ expression : Identifier | PropertyAccessEntityNameExpression ;
1636+ } ;
1637+ }
1638+ export interface JSDocImplementsTag extends JSDocTag {
1639+ kind : SyntaxKind . JSDocImplementsTag ;
16341640 class : ExpressionWithTypeArguments & {
16351641 expression : Identifier | PropertyAccessEntityNameExpression ;
16361642 } ;
@@ -3494,9 +3500,9 @@ declare namespace ts {
34943500 */
34953501 function hasJSDocParameterTags ( node : FunctionLikeDeclaration | SignatureDeclaration ) : boolean ;
34963502 /** Gets the JSDoc augments tag for the node if present */
3497- function getJSDocAugmentsTag ( node : Node ) : JSDocHeritageTag | undefined ;
3503+ function getJSDocAugmentsTag ( node : Node ) : JSDocAugmentsTag | undefined ;
34983504 /** Gets the JSDoc implements tags for the node if present */
3499- function getJSDocImplementsTags ( node : Node ) : readonly JSDocHeritageTag [ ] ;
3505+ function getJSDocImplementsTags ( node : Node ) : readonly JSDocImplementsTag [ ] ;
35003506 /** Gets the JSDoc class tag for the node if present */
35013507 function getJSDocClassTag ( node : Node ) : JSDocClassTag | undefined ;
35023508 /** Gets the JSDoc public tag for the node if present */
@@ -3715,8 +3721,8 @@ declare namespace ts {
37153721 function isJSDocVariadicType ( node : Node ) : node is JSDocVariadicType ;
37163722 function isJSDoc ( node : Node ) : node is JSDoc ;
37173723 function isJSDocAuthorTag ( node : Node ) : node is JSDocAuthorTag ;
3718- function isJSDocAugmentsTag ( node : Node ) : node is JSDocHeritageTag ;
3719- function isJSDocImplementsTag ( node : Node ) : node is JSDocHeritageTag ;
3724+ function isJSDocAugmentsTag ( node : Node ) : node is JSDocAugmentsTag ;
3725+ function isJSDocImplementsTag ( node : Node ) : node is JSDocImplementsTag ;
37203726 function isJSDocClassTag ( node : Node ) : node is JSDocClassTag ;
37213727 function isJSDocPublicTag ( node : Node ) : node is JSDocPublicTag ;
37223728 function isJSDocPrivateTag ( node : Node ) : node is JSDocPrivateTag ;
0 commit comments