首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将TypeScript回调函数提升到窗口对象

将TypeScript回调函数提升到窗口对象
EN

Stack Overflow用户
提问于 2018-12-19 07:57:24
回答 1查看 557关注 0票数 0

我得到了一个有效的HTML页面,其中包含如下所示的JS代码:

代码语言:javascript
复制
<script type="text/javascript">
    function nativeThingEventHandler(event) {
        console.log("event received: " + event);
    }

    window.onload = function() {
        if (typeof nativeThing !== "undefined") {
            console.log("Native thing was found");      
            nativeThing.setListener("nativeThingEventHandler");
        }
    }
</script>

其中nativeThing是HTML外部的本机对象,它执行某些操作,然后调用nativeThingEventHandler (如您所见,它是在JS代码的顶层定义的)回调。我需要将这个超文本标记语言页面集成到一个React TypeScript项目中,而且我对Typescript还很陌生。我在实现nativeThingEventHandler函数时遇到了问题,这样nativeThing就可以找到它,所以当nativeThing对象发回事件时,我总是得到一个错误。如何在typescript中定义事件处理程序,以便在项目构建后,可以在JS代码的顶层找到它?

编辑澄清: nativeObject的API期望setListener方法中有一个字符串,然后期望在Javascript的顶层(而不是任何其他函数的内部)中有一个与该字符串同名的函数。所以这个问题特别是关于如何编写一个typescript函数,一旦编译,将导致该函数被放在javascript的顶层。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-19 08:01:15

一种丑陋的解决方法是手动将回调函数分配给window以下的变量:

代码语言:javascript
复制
import { nativeThingEventHandler } from 'somewhere';

(window as any).nativeThingEventHandler = nativeThingEventHandler;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53842800

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档