[英]Getting a value from form input with TypeScript
我正在使用TypeScript在Angular 2中開發一個小應用程序,我遇到了一個問題。
假設我將變量num
聲明為數字,並且我使用ngModel
將其綁定到表單中的輸入框。 當我得到值,並檢查類型時,它實際上現在是一個字符串,而不再是一個數字,所以當檢查num >= 0
,如果輸入包含空字符串,它實際上會返回true
JavaScript行為。
現在這是TypeScript中的一個錯誤還是有一些方法可以獲得正確的數據類型? 我希望他們在幕后做適當的強制,所以我沒有必要。
編輯 : 在這里插入
這不是TypeScript中的錯誤,這是一種正確的行為。
如果你宣布你的輸入像
<input type="number" placeholder="Payment" [(ngModel)]="payment" value="" />
看到type =“number”然后它將是一個數字。
順便說一下,我沒有給你們投票:p
只是想嘗試添加一些解釋:
在瀏覽器中不存在Typescript - 它沒有類型強制,沒有類型檢查沒有任何東西。 payment
變量的類型由輸入類型和Angular確定(如Hung Cao所解釋)。
Typescript只能通過檢查你的類型來幫助你在編輯器和javascript編譯階段。
如果使用TS創建庫並聲明:
const myVariable: SomeClassOfMine;
然后我在不同的項目中使用它,我可以這樣做:
myVariable = 1;
並且沒有警告/錯誤。 事實上,瀏覽器不了解您的SomeClassOfMine類型。
只記得在瀏覽器(或節點)中不存在TS,它仍然是JS。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.