Идиоматический истинный эквивалент с использованием 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;
};

Транспилятор Sandbox JSweet

Есть ли какой-нибудь синтаксический сахар JSweet, который лучше справился бы с этим?

0 ответов

Другие вопросы по тегам