diff --git a/parser.d.ts b/parser.d.ts index 44f29bd..493fa30 100644 --- a/parser.d.ts +++ b/parser.d.ts @@ -1,6 +1,8 @@ export type Value = number | string + | boolean | ((...args: Value[]) => Value) + | Value[] | { [propertyName: string]: Value }; export interface Values { @@ -51,6 +53,7 @@ export interface ParserOptions { max?: boolean, assignment?: boolean, fndef?: boolean, + array?: boolean cbrt?: boolean, expm1?: boolean, log1p?: boolean, @@ -65,16 +68,16 @@ export class Parser { functions: any; consts: any; parse(expression: string): Expression; - evaluate(expression: string, values?: Value): number; + evaluate(expression: string, values?: Values): Value; static parse(expression: string): Expression; - static evaluate(expression: string, values?: Value): number; + static evaluate(expression: string, values?: Values): Value; } export interface Expression { - simplify(values?: Value): Expression; - evaluate(values?: Value): any; + simplify(values?: Values): Expression; + evaluate(values?: Values): Value; substitute(variable: string, value: Expression | string | number): Expression; symbols(options?: { withMembers?: boolean }): string[]; variables(options?: { withMembers?: boolean }): string[]; - toJSFunction(params: string | string[], values?: Value): (...args: any[]) => number; + toJSFunction(params: string | string[], values?: Values): (...args: any[]) => Value; }