首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在typescript中公开事件,以便ES5代码可以定义处理程序?

如何在typescript中公开事件,以便ES5代码可以定义处理程序?
EN

Stack Overflow用户
提问于 2018-08-18 07:33:48
回答 1查看 13关注 0票数 0

我有一个表示文本框的TypeScript类。我希望在文本发生更改并且键入的文本是坏词时捕获事件,并允许包括ES5代码在内的其他代码处理该事件。

export class ParentalTextBox {
  private txt : HTMLInputElement;

 Attach(textbox : HTMLInputElement) {
    this.txt = textbox;
    this.txt.onchange = () => CheckForBadWords());
 }

 CheckForBadWords() {
  if (this.txt.value == "rascal") {
     // I want to fire an event for any handler to know that a bad word was
     // detected, here.
     //
   }
 }
}

我试着做一些像这样的事情。

 OnBadWordDetected : (word : string, target : HTMLInputElement);

但这给了我一个错误,我不想定义它,因为我希望我的类的其他ES5用户能够像这样分配一个处理程序

var myobj = new TypeScriptModule.ParentalTextBox();
myobj.Attach(document.getElementById("searchbox"));

myobj.OnBadWordDetected = function(word, target) {
 alert("I will tell your parents now!");
}

我如何实现上述目标?

EN

回答 1

Stack Overflow用户

发布于 2018-08-18 08:16:38

如果它是一个函数,你还需要定义返回类型:

OnBadWordDetected : (word : string, target : HTMLInputElement) => any;

如果您不关心返回类型是什么,any将允许函数具有任何返回类型。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51903973

复制
相关文章

相似问题

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