共用方式為


Expression class

可分析或評估以產生值的表達式。 這提供一個開放式包裝函式,可支援一些內建函式,也可以在運行時間擴充。 它也支持驗證表達式和評估的正確性,這些表達式和評估應該不受例外狀況。

建構函式

Expression(string, ExpressionEvaluator, Expression[])

表達式建構函式。

屬性

children

子表達式。

evaluator

表達式評估工具。

functions

function => ExpressionEvaluator 的字典。 這是所有可用的函式,您可以將自定義函式新增至其中,但無法取代內建函式。 如果您清除字典,則會重設為內建函式。

returnType

評估表達式的預期結果。

type

表達式的類型。

方法

andExpression(Expression[])

建構及驗證 And 運算式。

deepEquals(Expression)

在表達式之間執行深度相等。

equalsExpression(Expression[])

建構並驗證 Equals 表達式。

lambaExpression(EvaluateExpressionDelegate)

從 EvaluateExpressionDelegate 建構表達式

lambda((arg0: any) => any)

透過狀態從 lamba 表達式建構表達式。 例外狀況將會攔截並呈現為錯誤字串。

lookup(string)

依名稱查閱 ExpressionEvaluator 函式。

makeExpression(string, ExpressionEvaluator, Expression[])

建立表達式並加以驗證。

notExpression(Expression)

建構並驗證 Not 運算式。

orExpression(Expression[])

建構及驗證 Or 運算式。

parse(string, EvaluatorLookup)

將表達式字串剖析成 Expression 物件。

references()

將靜態參考路徑傳回至記憶體。 將所有靜態路徑傳回記憶體。 如果有計算專案索引,則路徑也會在那裡終止,但您也可以從計算元件取得其他路徑。

referenceWalk(Expression, (arg0: Expression) => boolean)

用於識別表達式中靜態記憶體參考的步行函式。

setPathToValue(Expression, any)

建構及驗證將屬性表示式設定為值表達式。

toString()

傳回字串,表示目前 Expression 物件。

tryEvaluate(MemoryInterface | any, Options)

評估表達式。

validate()

驗證立即表達式。

validateTree()

以遞歸方式驗證表達式樹狀結構。

建構函式詳細資料

Expression(string, ExpressionEvaluator, Expression[])

表達式建構函式。

new Expression(type: string, evaluator: ExpressionEvaluator, children: Expression[])

參數

type

string

ExpressionType 中的表達式類型

evaluator
ExpressionEvaluator

如何驗證和評估表達式的相關信息。

children

Expression[]

子表達式。

屬性詳細資料

children

子表達式。

children: Expression[]

屬性值

evaluator

表達式評估工具。

evaluator: ExpressionEvaluator

屬性值

functions

function => ExpressionEvaluator 的字典。 這是所有可用的函式,您可以將自定義函式新增至其中,但無法取代內建函式。 如果您清除字典,則會重設為內建函式。

static functions: FunctionTable = new FunctionTable()

屬性值

returnType

評估表達式的預期結果。

ReturnType returnType

屬性值

評估表達式的預期結果。

type

表達式的類型。

string type

屬性值

string

表達式的類型。

方法詳細資料

andExpression(Expression[])

建構及驗證 And 運算式。

static function andExpression(children: Expression[]): Expression

參數

children

Expression[]

子句。

傳回

新運算式。

deepEquals(Expression)

在表達式之間執行深度相等。

function deepEquals(other: Expression): boolean

參數

other
Expression

其他表達式。

傳回

boolean

如果表達式相同,則為 True。

equalsExpression(Expression[])

建構並驗證 Equals 表達式。

static function equalsExpression(children: Expression[]): Expression

參數

children

Expression[]

子句。

傳回

新運算式。

lambaExpression(EvaluateExpressionDelegate)

從 EvaluateExpressionDelegate 建構表達式

static function lambaExpression(func: EvaluateExpressionDelegate): Expression

參數

func
EvaluateExpressionDelegate

要從中建立表達式的函式。

傳回

新的表達式。

lambda((arg0: any) => any)

透過狀態從 lamba 表達式建構表達式。 例外狀況將會攔截並呈現為錯誤字串。

static function lambda(func: (arg0: any) => any): Expression

參數

func

(arg0: any) => any

要評估的ambda表達式。

傳回

新運算式。

lookup(string)

依名稱查閱 ExpressionEvaluator 函式。

static function lookup(functionName: string): ExpressionEvaluator

參數

functionName

string

要查閱的函式名稱。

傳回

對應至函式名稱的 ExpressionEvaluator

makeExpression(string, ExpressionEvaluator, Expression[])

建立表達式並加以驗證。

static function makeExpression(type: string, evaluator: ExpressionEvaluator, children: Expression[]): Expression

參數

type

string

ExpressionType 中的表達式類型。

evaluator
ExpressionEvaluator

如何驗證和評估表達式的相關信息。

children

Expression[]

子表達式。

傳回

新的表達式。

notExpression(Expression)

建構並驗證 Not 運算式。

static function notExpression(child: Expression): Expression

參數

child
Expression

子句。

傳回

新運算式。

orExpression(Expression[])

建構及驗證 Or 運算式。

static function orExpression(children: Expression[]): Expression

參數

children

Expression[]

子句。

傳回

新運算式。

parse(string, EvaluatorLookup)

將表達式字串剖析成 Expression 物件。

static function parse(expression: string, lookup?: EvaluatorLookup): Expression

參數

expression

string

表達式字串。

lookup
EvaluatorLookup

自選。 剖析表達式時,評估工具Lookup 函式查閱。 默認值為 Expression.lookup,它會使用 Expression.functions 數據表。

傳回

表達式物件。

references()

將靜態參考路徑傳回至記憶體。 將所有靜態路徑傳回記憶體。 如果有計算專案索引,則路徑也會在那裡終止,但您也可以從計算元件取得其他路徑。

function references(): string[]

傳回

string[]

靜態參考路徑的清單。

referenceWalk(Expression, (arg0: Expression) => boolean)

用於識別表達式中靜態記憶體參考的步行函式。

function referenceWalk(expression: Expression, extension?: (arg0: Expression) => boolean): { path: string, refs: Set<string> }

參數

expression
Expression

要分析的表達式。

extension

(arg0: Expression) => boolean

如果存在,請呼叫 以覆寫範本擴充等專案的查閱。

傳回

{ path: string, refs: Set<string> }

表達式的存取子路徑。

setPathToValue(Expression, any)

建構及驗證將屬性表示式設定為值表達式。

static function setPathToValue(property: Expression, value: any): Expression

參數

property
Expression

屬性表達式。

value

any

value 表達式。

傳回

新運算式。

toString()

傳回字串,表示目前 Expression 物件。

function toString(): string

傳回

string

字串,表示目前 Expression 物件。

tryEvaluate(MemoryInterface | any, Options)

評估表達式。

function tryEvaluate(state: MemoryInterface | any, options: Options): ValueWithError

參數

state

MemoryInterface | any

用來評估存取子表達式的全域狀態。 可以是 Dictionary,否則會使用反映來存取屬性,然後是索引器。

options
Options

評估中使用的選項。

傳回

計算值和錯誤字串。 如果字串為非 Null,則發生評估錯誤。

validate()

驗證立即表達式。

function validate()

validateTree()

以遞歸方式驗證表達式樹狀結構。

function validateTree()