@@ -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 | JSDocHeritageTag ;
11491150 expression : LeftHandSideExpression ;
11501151 }
11511152 export interface NewExpression extends PrimaryExpression , Declaration {
@@ -1625,11 +1626,11 @@ declare namespace ts {
16251626 kind : SyntaxKind . JSDocTag ;
16261627 }
16271628 /**
1629+ * Represents @augments @extends and @implements
16281630 * Note that `@extends` is a synonym of `@augments`.
1629- * Both tags are represented by this interface.
16301631 */
1631- export interface JSDocAugmentsTag extends JSDocTag {
1632- kind : SyntaxKind . JSDocAugmentsTag ;
1632+ export interface JSDocHeritageTag extends JSDocTag {
1633+ kind : SyntaxKind . JSDocAugmentsTag | SyntaxKind . JSDocImplementsTag ;
16331634 class : ExpressionWithTypeArguments & {
16341635 expression : Identifier | PropertyAccessEntityNameExpression ;
16351636 } ;
@@ -3493,7 +3494,9 @@ declare namespace ts {
34933494 */
34943495 function hasJSDocParameterTags ( node : FunctionLikeDeclaration | SignatureDeclaration ) : boolean ;
34953496 /** Gets the JSDoc augments tag for the node if present */
3496- function getJSDocAugmentsTag ( node : Node ) : JSDocAugmentsTag | undefined ;
3497+ function getJSDocAugmentsTag ( node : Node ) : JSDocHeritageTag | undefined ;
3498+ /** Gets the JSDoc implements tags for the node if present */
3499+ function getJSDocImplementsTags ( node : Node ) : readonly JSDocHeritageTag [ ] ;
34973500 /** Gets the JSDoc class tag for the node if present */
34983501 function getJSDocClassTag ( node : Node ) : JSDocClassTag | undefined ;
34993502 /** Gets the JSDoc public tag for the node if present */
@@ -3535,7 +3538,9 @@ declare namespace ts {
35353538 function getJSDocReturnType ( node : Node ) : TypeNode | undefined ;
35363539 /** Get all JSDoc tags related to a node, including those on parent nodes. */
35373540 function getJSDocTags ( node : Node ) : readonly JSDocTag [ ] ;
3538- /** Gets all JSDoc tags of a specified kind, or undefined if not present. */
3541+ /** Gets all JSDoc tags that match a specified predicate */
3542+ function getAllJSDocTags < T extends JSDocTag > ( node : Node , predicate : ( tag : JSDocTag ) => tag is T ) : readonly T [ ] ;
3543+ /** Gets all JSDoc tags of a specified kind */
35393544 function getAllJSDocTagsOfKind ( node : Node , kind : SyntaxKind ) : readonly JSDocTag [ ] ;
35403545 /**
35413546 * Gets the effective type parameters. If the node was parsed in a
@@ -3710,7 +3715,8 @@ declare namespace ts {
37103715 function isJSDocVariadicType ( node : Node ) : node is JSDocVariadicType ;
37113716 function isJSDoc ( node : Node ) : node is JSDoc ;
37123717 function isJSDocAuthorTag ( node : Node ) : node is JSDocAuthorTag ;
3713- function isJSDocAugmentsTag ( node : Node ) : node is JSDocAugmentsTag ;
3718+ function isJSDocAugmentsTag ( node : Node ) : node is JSDocHeritageTag ;
3719+ function isJSDocImplementsTag ( node : Node ) : node is JSDocHeritageTag ;
37143720 function isJSDocClassTag ( node : Node ) : node is JSDocClassTag ;
37153721 function isJSDocPublicTag ( node : Node ) : node is JSDocPublicTag ;
37163722 function isJSDocPrivateTag ( node : Node ) : node is JSDocPrivateTag ;
0 commit comments