检查GWT Elemental2叠加层中方法或属性的可用性

问题描述 投票:1回答:1

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

DomGlobal类有一个hasOwnProperty()方法似乎做我想要的:

// WORKS
if (DomGlobal.hasOwnProperty("console")) {
    DomGlobal.console.log(object);
}

但是如何检查console对象本身的方法是否存在?我希望能够做到这样的事情:

// DOESN'T WORK
if (DomGlobal.console.hasOwnProperty("warn")) {
    DomGlobal.console.warn(object);
}

它不起作用,因为hasOwnProperty()没有在console叠加中定义。

我应该做什么呢?我是否需要定义自己的叠加层或强制转换为包含该方法的叠加层?

这是正确的吗?

Js.<JsObject>cast(DomGlobal.console).hasOwnProperty("warn")

看起来有点满口。是否有标准实用程序更简洁地执行此操作,还是我必须自己编写?

gwt gwt-jsinterop
1个回答
2
投票

我在Elemental2的老closed issue中发现了这个答案:

Js.asPropertyMap(object).has("key");
© www.soinside.com 2019 - 2024. All rights reserved.