Determine the return type of an expression.
the expression to evaluate.
Optional
an optional type checker to use for variable expressions.
the return type of the expression, or undefined if it cannot be determined.
Determine the return type of an expression.