检查GWT Elemental2覆盖中方法或属性的可用性

检查GWT Elemental2覆盖中方法或属性的可用性,gwt,gwt-jsinterop,Gwt,Gwt Jsinterop,虽然Elemental2覆盖中可能提供属性或方法,但如何测试它是否在底层JS对象中实际定义 DomGlobal类有一个hasOwnProperty()方法,它似乎实现了我想要的功能: // WORKS if (DomGlobal.hasOwnProperty("console")) { DomGlobal.console.log(object); } 但是如何检查控制台对象本身上是否存在方法呢?我希望能够做到这样: // DOESN'T WORK if (DomGlobal.conso

虽然Elemental2覆盖中可能提供属性或方法,但如何测试它是否在底层JS对象中实际定义

DomGlobal
类有一个
hasOwnProperty()
方法,它似乎实现了我想要的功能:

// WORKS
if (DomGlobal.hasOwnProperty("console")) {
    DomGlobal.console.log(object);
}
但是如何检查
控制台
对象本身上是否存在方法呢?我希望能够做到这样:

// DOESN'T WORK
if (DomGlobal.console.hasOwnProperty("warn")) {
    DomGlobal.console.warn(object);
}
它不起作用,因为
hasOwnProperty()
未在
控制台中定义

我该怎么办呢?我是否需要定义自己的覆盖或强制转换到包含该方法的覆盖

是这样吗

Js.<JsObject>cast(DomGlobal.console).hasOwnProperty("warn")
Js.cast(DomGlobal.console).hasOwnProperty(“警告”)

好像有点太多了。是否有更简洁的标准实用程序,或者我必须自己编写?

我在旧的for Elemental2中发现了这个答案:

Js.asPropertyMap(object).has("key");