Как получить доступ к экспортированным типам GWT JsInterop из консоли браузера? - PullRequest
0 голосов
/ 08 февраля 2019

Я запускаю приложение GWT и хочу быстро что-то протестировать с помощью JsInterop.

В частности, я экспортировал enum:

package com.mypackage.test

@JsType
enum MyEnum {
    A,
    B,
    C;
}

И я хочу проверить,может получить доступ к нему должным образом перед написанием любого кода.

Документы показывают такие вещи:

var aClass = new com.gwt.example.MyClass('World');

Но com не определено в Window.Итак, как я могу получить доступ к JsInterop из консоли, чтобы проверить вещи перед написанием кода?

1 Ответ

0 голосов
/ 08 февраля 2019

Вы не забыли передать флаг -generateJsInteropExports компилятору (и в режим Super Dev)?Без этого GWT не будет экспортировать типы, поскольку это увеличивает размер вывода.

Кроме того, этот пакет не похож на обычную структуру, которую вы ожидаете увидеть в проекте GWT (то есть client где-то тамв соответствии с вашим модулем GWT) - вы не забыли сослаться на этот пакет из вашего файла .gwt.xml?

Возможно также, что это должно быть public - по умолчанию в коде JsInterop не отображаетсявидимые члены (поскольку они не являются общедоступными, поэтому не предполагается, что они потребляются в других местах).Я не уверен, относится ли это к типам или только к элементам.


Наконец, имейте в виду, что маркировка Java enum с помощью JsType магическим образом не делает их целесообразными в JS - там будетбыть типом MyEnum в указанном пакете, и каждый из этих статических членов будет присутствовать, но они будут непрозрачными объектами JS, а не строками или чем-то еще, с чем вы можете легко взаимодействовать, если только вы не добавите другие аннотации jsinterop к методам в этомучебный класс.J2CL поддерживает @JsEnum, который автоматически преобразует их в числовые константы, но это еще не было перенесено в GWT2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...