簡體   English   中英

打字稿值檢查

[英]Typescript value checking

我有一個這樣的功能:

  private myFunc = (myNumber: number) => {
    if (myNumber === 1) {
        console.log('here');
    }
  }

在myNumber為1的地方,我沒有得到控制台輸出。 通過查看控制台,我可以看到myNumber被視為其他類型(字符串)。 像這樣更改代碼即可:

  private myFunc = (myNumber: number) => {
    if (myNumber == 1) {
        console.log('here');
    }
  }

我的印象是在這種情況下,Typescript會發出“編譯”錯誤,但事實並非如此。 誰能告訴我為什么?

Typescript使用靜態類型檢查(運行時不存在Typescript),因此,如果將字符串傳遞給函數“ myNumber”,則為字符串。 您需要在函數內添加自己的支票

  private myFunc = (myNumber: number) => {
    if (parseInt(myNumber) === 1) {
        console.log('here');
    }
  }

是的,如果您願意,Typescript將顯示一個編譯時錯誤:

 myFunc("1");

但是,就像您在運行時調用它一樣,Typescript無法對其進行檢查。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM