[英]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.