从 java 到打字稿的代码片段

Code fragment from java to typescript

不明白如何结构化此 java 代码以在 typescript(javascript) 中工作:

channel.join().receive("ok", new IMessageCallback() {
    @Override
    public void onMessage(Envelope envelope) {
        System.out.println("JOINED with " + envelope.toString());
    }
});

代码在这里找到:https://github.com/eoinsha/JavaPhoenixChannels

正在考虑这样的事情:

var phoenix = (org as any).phoenixframework.channels;
var callback = new phoenix.IMessageCallback({
    onMessage: function (arg) {
        console.log('callback');
    }
});

channel.join().receive("ok", callback);

编译成功,没有报错,但是加入频道后没有回调

任何见解表示赞赏!

-- 更新 事实证明我做对了,连接问题出在其他地方,感谢所有投入的人! :)

如果要实现 Java 接口,可以使用以下语法。

var clickListener = android.view.View.OnClickListener({
    onClick: function (view) {
        // Do something on click
    }
});

关于android运行时和数据转换技巧可以参考documentation article

我想补充 Nick Iliev 的回答

扩展相关接口的正确方法如下

var callback = new org.phoenixframework.channels.IMessageCallback({
    onMessage: function (arg) {
        console.log('callback');
    }
});

您需要指定完整的 class 名称,包括包 + class 名称 (org.phoenixframework.channels + IMessageCallback)