ts-simple-ast
Version:
TypeScript compiler wrapper for AST navigation and code generation.
47 lines (46 loc) • 1.58 kB
TypeScript
import * as ts from "typescript";
import { Constructor } from "./../../Constructor";
import { Node } from "./../common";
import { TypeNode } from "./../type";
export declare type TypeArgumentedNodeExtensionType = Node<ts.Node & {
typeArguments?: ts.NodeArray<ts.TypeNode>;
}>;
export interface TypeArgumentedNode {
/**
* Gets all the type arguments of the node.
*/
getTypeArguments(): TypeNode[];
/**
* Adds a type argument.
* @param argumentText - Argument text to add.
*/
addTypeArgument(argumentText: string): TypeNode;
/**
* Adds type arguments.
* @param argumentTexts - Argument texts to add.
*/
addTypeArguments(argumentTexts: string[]): TypeNode[];
/**
* Inserts a type argument.
* @param index - Index to insert at.
* @param argumentText - Argument text to insert.
*/
insertTypeArgument(index: number, argumentText: string): TypeNode;
/**
* Inserts type arguments.
* @param index - Index to insert at.
* @param argumentTexts - Argument texts to insert.
*/
insertTypeArguments(index: number, argumentTexts: string[]): TypeNode[];
/**
* Removes a type argument.
* @param typeArg - Type argument to remove.
*/
removeTypeArgument(typeArg: Node): this;
/**
* Removes a type argument.
* @param index - Index to remove.
*/
removeTypeArgument(index: number): this;
}
export declare function TypeArgumentedNode<T extends Constructor<TypeArgumentedNodeExtensionType>>(Base: T): Constructor<TypeArgumentedNode> & T;