根据打字稿中的自定义界面检查输入的obj类型

时间:2018-06-19 12:45:09

标签: javascript typescript typescript2.0

有没有办法像下面这样用打字稿编写函数。 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");

    }

但是这不起作用。谁能建议更好的方法,或者我在当前方法上做错了什么?

1 个答案:

答案 0 :(得分:0)

这根本与打字稿无关。

Typescript仅向您提供翻译时控件,并且永远不会在运行时引发任何错误,并且不执行任何特殊检查(您可以查看该已编译的代码,它与原始代码非常相似)。然后,应用程序将使用纯JavaScript,并且行为如此。

typeof是javascript关键字,即使使用打字稿,它也可以像纯javascript一样工作。您可以通过创建某个类的实例来完成所需的操作,您可以使用instanceof进行适当的检查。或者,您也可以只使用某种方法,根据某个关键字找出您的类型。