ts-simple-ast
Version:
TypeScript compiler wrapper for AST navigation and code generation.
25 lines (24 loc) • 1.1 kB
TypeScript
import * as ts from "typescript";
import { Constructor } from "./../../Constructor";
import { Node } from "./../common";
import { HeritageClause } from "./../general/HeritageClause";
export declare type HeritageClauseableNodeExtensionType = Node<ts.Node & {
heritageClauses?: ts.NodeArray<ts.HeritageClause>;
}>;
export interface HeritageClauseableNode {
/**
* Gets the heritage clauses of the node.
*/
getHeritageClauses(): HeritageClause[];
/**
* Gets the heritage clause by kind.
* @kind - Kind of heritage clause.
*/
getHeritageClauseByKind(kind: ts.SyntaxKind.ExtendsKeyword | ts.SyntaxKind.ImplementsKeyword): HeritageClause | undefined;
/**
* Gets the heritage clause by kind or throws if it doesn't exist.
* @kind - Kind of heritage clause.
*/
getHeritageClauseByKindOrThrow(kind: ts.SyntaxKind.ExtendsKeyword | ts.SyntaxKind.ImplementsKeyword): HeritageClause;
}
export declare function HeritageClauseableNode<T extends Constructor<HeritageClauseableNodeExtensionType>>(Base: T): Constructor<HeritageClauseableNode> & T;