簡體   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