有没有办法像下面这样用打字稿编写函数。 T类型属于我的自定义界面。
checkType<T>(input):boolean{
if(typeof input === T){
return true;
}
else{
return false;
}
}
实际上,我有5个下拉菜单,每个下拉菜单都绑定到不同的接口。在“ selectionChange”事件(所有5个下拉列表中都有一个事件处理程序)上,我编写了以下函数,并获得了作为属于接口之一的json对象的输入,
public selectionChange(value: any): void {
if(this.checkType<ICustomer>(value)){
console.log("yes, this is a customer");
}
但是这不起作用。谁能建议更好的方法,或者我在当前方法上做错了什么?
答案 0 :(得分:0)
这根本与打字稿无关。
Typescript仅向您提供翻译时控件,并且永远不会在运行时引发任何错误,并且不执行任何特殊检查(您可以查看该已编译的代码,它与原始代码非常相似)。然后,应用程序将使用纯JavaScript,并且行为如此。
typeof
是javascript关键字,即使使用打字稿,它也可以像纯javascript一样工作。您可以通过创建某个类的实例来完成所需的操作,您可以使用instanceof
进行适当的检查。或者,您也可以只使用某种方法,根据某个关键字找出您的类型。