ts-simple-ast
Version:
TypeScript compiler wrapper for AST navigation and code generation.
31 lines (30 loc) • 933 B
TypeScript
import { Constructor } from "./../../Constructor";
import { BodyableNode } from "./../base";
import { Node } from "./../common";
export declare type OverloadableNodeExtensionType = Node & BodyableNode;
/**
* Node that supports overloads.
*/
export interface OverloadableNode {
/**
* Gets all the overloads associated with this node.
*/
getOverloads(): this[];
/**
* Gets the implementation or undefined if it doesn't exist.
*/
getImplementation(): this | undefined;
/**
* Gets the implementation or throws if it doesn't exist.
*/
getImplementationOrThrow(): this;
/**
* Gets if this is an overload.
*/
isOverload(): boolean;
/**
* Gets if this is the implementation.
*/
isImplementation(): boolean;
}
export declare function OverloadableNode<T extends Constructor<OverloadableNodeExtensionType>>(Base: T): Constructor<OverloadableNode> & T;