我有一个表示文本框的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!");
}
如何实现以上目标?
答案 0 :(得分:1)
如果它是一个函数,则还需要定义返回类型:
OnBadWordDetected : (word : string, target : HTMLInputElement) => any;
如果您不关心返回类型是什么,any
将允许具有任何返回类型的函数。