很多時候,我發現自己需要的類似書面的東西:可以通過更好的方式完成對null的默認檢查嗎?
_parsedBetData["prizeLevel"] = params["prizeLevel"] == null ? "default" : params["prizeLevel"];
我很好奇,如果有更好的方法來做到這一點?我主要擔心的是我必須寫兩次參數params [「prizeLevel」]。
當然,這可以被提取到類似的功能:
_parsedBetData["prizeLevel"] = defaultIfNull(params["prizeLevel"], "foo");
function defaultIfNull(o:*, default:*):* {
return o == null ? default : o;
}
但後來我就必須有從地方我想這樣做檢查訪問該功能。因此,我想知道是否有一些聰明的方法來解決這個問題。也許在某種魔法的幫助下?還是在原型/動態的東西適用於這裏?
我現在想到的最好的解決方案是在代碼IDE中創建一個宏,使得某些特定的鍵盤組合可以編寫它。但我敢打賭,有人有一個更好的主意。
我不是說你的情況是這樣,但通常不得不在同一個對象上重複測試null,這意味着你需要重新考慮你的設計。也許你需要爲對象設置某種默認設置,這樣你仍然可以處理它,並且它永遠不會爲空,即使該對象什麼也不做。 – Neil
@尼爾:是的,好點,這裏有很好的參考。但在這種情況下,這是「默認」情況。我將值分配給「視圖模型」,除非它們作爲啓動參數/在服務器響應等中提供。 –