This post has been edited to correct a mistake on my part as well as new capabilities that have been added to breeze as of v 0. 77.1.
Good questions!
Breeze now supports cross property query expressions (as of v 0.77.1), such as the following:
var shippedLateQuery = EntityQuery.from("Orders")
.where("requiredDate",">","shippedDate");
The third parameter ("shippedDate" above) will treated as either a property expression or a literal depending on context. In general, if the value can be interpreted as a property expression it will be, otherwise it will be treated as a literal. In most cases this works well, but you can also force the interpretation. Please see the API Docs for more details.
Composing complex queries, i.e. ( a || (b && c)), with breeze is accomplished via Predicates. There are some good examples here:
Query Examples - see the Compound Conditions with Predicates topics
Also, the first breeze tutorial here: Tutorial also lets you try out the capabilities (see step 5).
We are actively following Typescript and have plans to fully enable it, but we are still early in the process.
UPDATE: As of v 0.84.4, Breeze provides full TypeScript support.