@akala/core
Version:
37 lines (36 loc) • 1.42 kB
TypeScript
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;
}