UNPKG

@akala/core

Version:
37 lines (36 loc) 1.42 kB
import { Expression } from './expression.js'; import { ExpressionType } from './expression-type.js'; import { MemberExpression } from './member-expression.js'; import type { ExpressionVisitor } from './visitors/expression-visitor.js'; /** * Represents a 'new' expression used to instantiate objects or create array literals. * @template T - The type of the instantiated object. */ export declare class NewExpression<T> extends Expression { /** * Gets the type of the expression. * @returns {ExpressionType.NewExpression} The expression type constant */ get type(): ExpressionType.NewExpression; /** * Array of initialization expressions for the new instance. */ readonly init: MemberExpression<T, any, any>[]; /** * Indicates the type of initialization: * - '{' for object literals * - '[' for array literals */ newType: '{' | '['; /** * Creates a new NewExpression instance. * @param {...MemberExpression<T, any, any>} init - The initialization expressions for the new instance */ constructor(...init: MemberExpression<T, any, any>[]); /** * Accepts a visitor for the visitor pattern. * @param {ExpressionVisitor} visitor - The visitor to process this node * @returns {*} The result of the visitor's processing */ accept(visitor: ExpressionVisitor): import("./expression.js").StrictExpressions; }