繁体   English   中英

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

[英]Check input obj type against custom interface in typescript

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

    }

但这不起作用。 任何人都可以提出更好的方法,或者我对当前方法做错了什么?

这根本与打字稿无关。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM