我寫 JS 已經快二十年了,但我還是不明白為什麼?不是反模式的開始,特別是對於方法呼叫。
我看到貼文了
引起我注意的是第二個「帶有函數呼叫的可選鏈」:
const user = { getName: () => 'Alice', }; console.log(user.getName?.()); // Alice console.log(user.getAge?.()); // undefined
這尖叫著「我不知道我的對象的接口,而且我不在乎。」
你絕對應該關心你的物件的介面。
如果庫 API 發生變化,我幾乎可以看到魯棒性的論點,但不,如果您使用庫,您知道對象的接口,請修復您的程式碼。
它看起來就像是一個巨大的蟲子吸引器。
你永遠不希望某些東西是未定義的。或者我錯過了有關此的備忘錄?
對於方法來說,這更重要。如果兩個物件沒有相同的行為,則需要將它們視為不同的類型,而不僅僅是聳聳肩並說「沒關係」。
如今測試 null 違法嗎?我知道 null 被稱為十億美元的錯誤,但這是透過選項類型(如 Haskell 中的 Maybe)解決的,而不是看起來相反的問題。
選項類型讓您知道這可能為空,因此請謹慎操作。它並沒有隱藏事實,例如?是的。
儘管如此,我很高興能夠擺脫這樣的觀念? 。在檢查 null 時只是把罐頭踢到路上,或者在未定義時只是糟糕的設計。
什麼是好的模式,也就是可以減少錯誤的模式,您可以使用? .?
以上是就像我是你的學弟一樣解釋:為什麼是?好的?的詳細內容。更多資訊請關注PHP中文網其他相關文章!