gpt4 book ai didi

javascript - 如何从浏览器控制台访问 GWT 的 JsInterop 导出类型?

转载 作者:行者123 更新时间:2023-11-29 04:11:58 25 4
gpt4 key购买 nike

我正在运行一个 GWT 应用程序,我想用 JsInterop 快速测试一些东西。

具体来说,我导出了一个枚举:

package com.mypackage.test

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

我想在编写任何代码之前检查我是否可以正确访问它。

文档显示如下:

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

但是 com 没有在 Window 中定义。那么,如何在编写代码之前从控制台访问 JsInterop 以进行测试?

最佳答案

您是否记得将 -generateJsInteropExports 标志传递给编译器(以及 super 开发模式)?没有它,GWT 将不会导出类型,因为这会增加输出大小。

此外,该包看起来不像您希望在 GWT 项目中看到的通常结构(即其中某处的 client,对应于您的 GWT 模块)- 您是否记得引用这个包来自您的 .gwt.xml 文件吗?

也有可能这应该是 public - JsInterop 代码默认不显示不可见的成员(因为它们不是公开的,所以不假定在其他地方使用)。我不确定这是否适用于类型,还是仅适用于成员。


最后,请注意用 JsType 标记 Java enum 并不能神奇地使它们在 JS 中有意义——在指定的包中会有一个 MyEnum 类型,并且每个静态成员都将存在,但它们将是不透明的 JS 对象,而不是字符串或其他您可以轻松与之交互的东西,除非您还在该类的方法上添加其他 jsinterop 注释。 J2CL 支持 @JsEnum ,它会自动将它们全部转换为数字常量,但这尚未移植到 GWT2。

关于javascript - 如何从浏览器控制台访问 GWT 的 JsInterop 导出类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54594322/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com