@@ -383,29 +383,30 @@ declare namespace ts {
383383 JSDocSignature = 305 ,
384384 JSDocTag = 306 ,
385385 JSDocAugmentsTag = 307 ,
386- JSDocAuthorTag = 308 ,
387- JSDocClassTag = 309 ,
388- JSDocPublicTag = 310 ,
389- JSDocPrivateTag = 311 ,
390- JSDocProtectedTag = 312 ,
391- JSDocReadonlyTag = 313 ,
392- JSDocCallbackTag = 314 ,
393- JSDocEnumTag = 315 ,
394- JSDocParameterTag = 316 ,
395- JSDocReturnTag = 317 ,
396- JSDocThisTag = 318 ,
397- JSDocTypeTag = 319 ,
398- JSDocTemplateTag = 320 ,
399- JSDocTypedefTag = 321 ,
400- JSDocPropertyTag = 322 ,
401- SyntaxList = 323 ,
402- NotEmittedStatement = 324 ,
403- PartiallyEmittedExpression = 325 ,
404- CommaListExpression = 326 ,
405- MergeDeclarationMarker = 327 ,
406- EndOfDeclarationMarker = 328 ,
407- SyntheticReferenceExpression = 329 ,
408- Count = 330 ,
386+ JSDocImplementsTag = 308 ,
387+ JSDocAuthorTag = 309 ,
388+ JSDocClassTag = 310 ,
389+ JSDocPublicTag = 311 ,
390+ JSDocPrivateTag = 312 ,
391+ JSDocProtectedTag = 313 ,
392+ JSDocReadonlyTag = 314 ,
393+ JSDocCallbackTag = 315 ,
394+ JSDocEnumTag = 316 ,
395+ JSDocParameterTag = 317 ,
396+ JSDocReturnTag = 318 ,
397+ JSDocThisTag = 319 ,
398+ JSDocTypeTag = 320 ,
399+ JSDocTemplateTag = 321 ,
400+ JSDocTypedefTag = 322 ,
401+ JSDocPropertyTag = 323 ,
402+ SyntaxList = 324 ,
403+ NotEmittedStatement = 325 ,
404+ PartiallyEmittedExpression = 326 ,
405+ CommaListExpression = 327 ,
406+ MergeDeclarationMarker = 328 ,
407+ EndOfDeclarationMarker = 329 ,
408+ SyntheticReferenceExpression = 330 ,
409+ Count = 331 ,
409410 FirstAssignment = 62 ,
410411 LastAssignment = 74 ,
411412 FirstCompoundAssignment = 63 ,
@@ -434,9 +435,9 @@ declare namespace ts {
434435 LastStatement = 241 ,
435436 FirstNode = 153 ,
436437 FirstJSDocNode = 294 ,
437- LastJSDocNode = 322 ,
438+ LastJSDocNode = 323 ,
438439 FirstJSDocTagNode = 306 ,
439- LastJSDocTagNode = 322 ,
440+ LastJSDocTagNode = 323 ,
440441 }
441442 export enum NodeFlags {
442443 None = 0 ,
@@ -1145,7 +1146,7 @@ declare namespace ts {
11451146 }
11461147 export interface ExpressionWithTypeArguments extends NodeWithTypeArguments {
11471148 kind : SyntaxKind . ExpressionWithTypeArguments ;
1148- parent : HeritageClause | JSDocAugmentsTag ;
1149+ parent : HeritageClause | JSDocAugmentsTag | JSDocImplementsTag ;
11491150 expression : LeftHandSideExpression ;
11501151 }
11511152 export interface NewExpression extends PrimaryExpression , Declaration {
@@ -1635,6 +1636,12 @@ declare namespace ts {
16351636 expression : Identifier | PropertyAccessEntityNameExpression ;
16361637 } ;
16371638 }
1639+ export interface JSDocImplementsTag extends JSDocTag {
1640+ kind : SyntaxKind . JSDocImplementsTag ;
1641+ class : ExpressionWithTypeArguments & {
1642+ expression : Identifier | PropertyAccessEntityNameExpression ;
1643+ } ;
1644+ }
16381645 export interface JSDocAuthorTag extends JSDocTag {
16391646 kind : SyntaxKind . JSDocAuthorTag ;
16401647 }
@@ -3516,6 +3523,8 @@ declare namespace ts {
35163523 function hasJSDocParameterTags ( node : FunctionLikeDeclaration | SignatureDeclaration ) : boolean ;
35173524 /** Gets the JSDoc augments tag for the node if present */
35183525 function getJSDocAugmentsTag ( node : Node ) : JSDocAugmentsTag | undefined ;
3526+ /** Gets the JSDoc implements tags for the node if present */
3527+ function getJSDocImplementsTags ( node : Node ) : readonly JSDocImplementsTag [ ] ;
35193528 /** Gets the JSDoc class tag for the node if present */
35203529 function getJSDocClassTag ( node : Node ) : JSDocClassTag | undefined ;
35213530 /** Gets the JSDoc public tag for the node if present */
@@ -3557,7 +3566,9 @@ declare namespace ts {
35573566 function getJSDocReturnType ( node : Node ) : TypeNode | undefined ;
35583567 /** Get all JSDoc tags related to a node, including those on parent nodes. */
35593568 function getJSDocTags ( node : Node ) : readonly JSDocTag [ ] ;
3560- /** Gets all JSDoc tags of a specified kind, or undefined if not present. */
3569+ /** Gets all JSDoc tags that match a specified predicate */
3570+ function getAllJSDocTags < T extends JSDocTag > ( node : Node , predicate : ( tag : JSDocTag ) => tag is T ) : readonly T [ ] ;
3571+ /** Gets all JSDoc tags of a specified kind */
35613572 function getAllJSDocTagsOfKind ( node : Node , kind : SyntaxKind ) : readonly JSDocTag [ ] ;
35623573 /**
35633574 * Gets the effective type parameters. If the node was parsed in a
@@ -3733,6 +3744,7 @@ declare namespace ts {
37333744 function isJSDoc ( node : Node ) : node is JSDoc ;
37343745 function isJSDocAuthorTag ( node : Node ) : node is JSDocAuthorTag ;
37353746 function isJSDocAugmentsTag ( node : Node ) : node is JSDocAugmentsTag ;
3747+ function isJSDocImplementsTag ( node : Node ) : node is JSDocImplementsTag ;
37363748 function isJSDocClassTag ( node : Node ) : node is JSDocClassTag ;
37373749 function isJSDocPublicTag ( node : Node ) : node is JSDocPublicTag ;
37383750 function isJSDocPrivateTag ( node : Node ) : node is JSDocPrivateTag ;
0 commit comments