Cas*_*dan 1 gwt gwt-elemental gwt-jsinterop
让我说我有一个com.google.gwt.dom.client.Document gwtDocument节点,我想将其转换为elemental2.dom.Document?
由于Document扩展了JavaScriptObject,我认为我可以做类似的事情:
elemental2.dom.Document elementalDoc = (elemental2.dom.Document)(gwtDocument);
Run Code Online (Sandbox Code Playgroud)
但是,使用jsinterop的elemental2类不会扩展JavaScriptObject.那么如何在两者之间进行转换呢?
谢谢!
您可以转换为对象并转换为元素类型(示例1).这有点难看,所以有一个实用程序库可以在GWT和未来的J2CL编译器中使用,称为jsinterop-base.该Js实用程序可用于cast(2)和uncheckedCast(3)任何对象.该uncheckedCast应避免与只用,如果你知道你在做什么(例如:I帧之间铸造失败,或其他特殊情况的js).
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)
Run Code Online (Sandbox Code Playgroud)
因此,在客户端代码中,您应该使用Js.cast将GWTdom实例转换为elemental2实例.