UNPKG

ts-simple-ast

Version:

TypeScript compiler wrapper for AST navigation and code generation.

38 lines (37 loc) 1.51 kB
import * as ts from "typescript"; import { Constructor } from "./../../Constructor"; import { ParameterDeclarationStructure } from "./../../structures"; import { Node } from "./../common"; import { ParameterDeclaration } from "./../function/ParameterDeclaration"; export declare type ParameteredNodeExtensionType = Node<ts.Node & { parameters: ts.NodeArray<ts.ParameterDeclaration>; }>; export interface ParameteredNode { /** * Gets all the parameters of the node. */ getParameters(): ParameterDeclaration[]; /** * Adds a parameter. * @param structure - Structure of the parameter. */ addParameter(structure: ParameterDeclarationStructure): ParameterDeclaration; /** * Adds parameters. * @param structures - Structures of the parameters. */ addParameters(structures: ParameterDeclarationStructure[]): ParameterDeclaration[]; /** * Inserts parameters. * @param index - Index to insert at. * @param structures - Parameters to insert. */ insertParameters(index: number, structures: ParameterDeclarationStructure[]): ParameterDeclaration[]; /** * Inserts a parameter. * @param index - Index to insert at. * @param structures - Parameter to insert. */ insertParameter(index: number, structure: ParameterDeclarationStructure): ParameterDeclaration; } export declare function ParameteredNode<T extends Constructor<ParameteredNodeExtensionType>>(Base: T): Constructor<ParameteredNode> & T;