Gwt elemental2:如何在Gwt JavaScript对象和JsInterop对象之间进行转换?

Gwt elemental2:如何在Gwt JavaScript对象和JsInterop对象之间进行转换?,gwt,gwt-jsinterop,gwt-elemental,Gwt,Gwt Jsinterop,Gwt Elemental,假设我有一个com.google.gwt.dom.client.Document gwtDocument节点,我想将其转换为elemental2.dom.Document 由于文档扩展了JavaScriptObject,我假设我可以执行以下操作: elemental2.dom.Document elementalDoc = (elemental2.dom.Document)(gwtDocument); 但是,使用jsinterop的elemental2类并不扩展JavaScriptObject

假设我有一个
com.google.gwt.dom.client.Document gwtDocument
节点,我想将其转换为
elemental2.dom.Document

由于文档扩展了JavaScriptObject,我假设我可以执行以下操作:

elemental2.dom.Document elementalDoc = (elemental2.dom.Document)(gwtDocument);
但是,使用jsinterop的elemental2类并不扩展JavaScriptObject。那么我如何在两者之间转换呢


谢谢

您可以首先强制转换为对象,然后强制转换为元素类型(1)。这有点难看,所以有一个实用程序库可以在GWT和J2CL中使用,名为。
Js
实用程序可用于
cast
(2)和
取消选中cast
(3)任何对象。应避免使用
取消勾选的cast
,并且仅在您知道自己在做什么时使用(例如,在iFrame之间或其他特殊情况下进行强制转换)


因此,在客户端代码中,您应该使用
Js.cast
GWT
dom实例转换为
elemental2
实例。

您可以先转换为object,然后转换为elemental类型(1)。这有点难看,所以有一个实用程序库可以在GWT和J2CL中使用,名为。
Js
实用程序可用于
cast
(2)和
取消选中cast
(3)任何对象。应避免使用
取消勾选的cast
,并且仅在您知道自己在做什么时使用(例如,在iFrame之间或其他特殊情况下进行强制转换)


因此,在客户端代码中,您应该使用
Js.cast
GWT
dom实例转换为
elemental2
实例。

太棒了,我会尝试一下。谢谢太棒了,我会试试的。谢谢
com.google.gwt.dom.client.Document gwtDocument = Document.get();
elemental2.dom.Document el1 = (elemental2.dom.Document) (Object) gwtDocument; //(1)
elemental2.dom.Document el2 = jsinterop.base.Js.cast(gwtDocument); //(2)
elemental2.dom.Document el3 = jsinterop.base.Js.uncheckedCast(gwtDocument); //(3)