Идиоматический истинный эквивалент с использованием JSweet
У меня есть ванильный JavaScript ES3, широко использующий правдивую оценку
function doSomething(someInteger, someString) {
if ( someString ) {
//do something
}
var hasNumber = !!someInteger;
//etc..
}
Есть ли в Java синтаксис, который заставил бы JSweet перекомпилировать обратно для проверки достоверности? Моя текущая реализация (в основном) функционально эквивалентна, громоздка и приводит к излишне многословному транспилированному JavaScript.
import static def.js.Globals.undefined;
import static def.js.Globals.NaN;
void doSomething(Integer someInteger, String someString) {
if ( someString != undefined &&
someString != null &&
!someString.isEmpty() ) {
//do something
}
boolean hasNumber = someInteger != null &&
someInteger != undefined &&
someInteger.intValue() != 0 &&
someInteger != NaN;
}
Что переводится обратно к чему-то вроде:
function (someInteger, someString) {
if ( someString !== undefined &&
someString != null &&
!(someString.length === 0)) {
}
var hasNumber = someInteger != null &&
someInteger !== undefined &&
(someInteger | 0) !== 0 &&
someInteger !== NaN;
};
Есть ли какой-нибудь синтаксический сахар JSweet, который лучше справился бы с этим?