在 JavaScript 或 TypeScript 中建構物件時,通常會根據表達式的求值有條件地新增屬性。這通常是使用擴展運算子 (...) 結合邏輯條件來完成的。
const condition = (a, b) → a › b; const obj = { a: 1, b: 2, ... (false && {c: 3}), ... (true && {d: 4}), ... (condition (1, 2) && {e: 5}), }; console.log(obj); // output: { a: 1, b: 2, d: 4 }
false && {c: 3}:計算結果為 false,表示 {c: 3} 物件不會傳播到 obj 中。
true && {d: 4}:由於條件為 true,因此 {d: 4} 展開到 obj.
condition(1, 2) && {e: 5}:條件函數評估是否 a > b。由於 1 > 2 為 false,因此物件 {e: 5} 不會傳播。
此技術是一種強大的方法,可以保持物件定義簡潔明了,同時根據各種條件動態添加屬性。
最終的物件如下所示:
{ a: 1, b: 2, d: 4 }
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3