那我們繼續吧!
上面做了取得 DOM 元素,也就是三個 input 的值的動作:
submit
的動作,event handler 也呼叫了一個 submitHandler()
函式!接下來呢,會發現跟 Decorator Part - 3 一樣,由於 this
指向的關係,沒有用 JavaScript 的 bind
方法會導致取得的值會是 undefined
,於是這裡又再練習了一次 Method Decorator!紅色毛毛蟲的部分是因為 vsCode 提醒說要記得把 tsconfig.json 裡頭的 "experimentalDecorators"
打開啦~要記得哦~
在 submitHandler()
裡面呼叫了 gatherUserInput()
來獲得三個 input 的值,再來要做的是表單驗證以及取值的部分,以下做了幾件事情:
validate()
做好驗證之後就會返回裝有三個 input 值的陣列這裡有幾件要注意的事情:
gatherUserInput()
要返回的型別是 tuple,但是在第一個 if
驗證是不是沒填資料時因為第一個判斷沒有返回值,就會被報一個錯誤提醒說缺少一個 ending 的 return 述句,而且也沒有再定義函式會返回 undefined
。return
把它終結掉,又會跳出一個錯誤提醒是 undefined
沒有被指派給這個函式的返回值void
就可以了,注意不是設定成 undefined
哦,void
是指函式就算沒返回值也沒關係。return
的陣列,原本最後一個 enterPeople
也會被報錯,因為 DOM 的 input 預設都會是字串,簡單在前面加一個 +
,把值轉成數字就可以了。這樣做的話讓 validate()
函式變得可以重複使用,可以減少程式碼的行數,也達到了把每一個功能都分開寫的目的,讓程式碼可以比較好的去維護。
哇,寫到現在時間快到了,今天的學習筆記就到這邊~謝謝閱讀。:)