目錄
TypeScript 高階函數(Higher-Order Function)
TypeScript 高階函數(Higher-Order Function)是一種可以接受其他函數作為參數或返回一個函數的函數。這種特性使得高階函數在函數式編程中非常有用,並能提升代碼的可重用性與可讀性。
在 TypeScript 中,您可以在多個場景中使用高階函數,以下是一些實用的範例:
1. 對陣列中的每個元素執行操作
let numbers = [1, 2, 3, 4, 5];
// 對陣列中的每個元素執行操作
numbers.forEach(n => console.log(n * n)); // 輸出平方
2. 對陣列中的每個元素執行條件判斷
let numbers = [1, 2, 3, 4, 5];
// 對陣列中的每個元素執行條件判斷
let evenNumbers = numbers.filter(n => n % 2 === 0); // 找出偶數
console.log(evenNumbers); // 輸出 [2, 4]
3. 對陣列中的每個元素執行計算
let numbers = [1, 2, 3, 4, 5];
// 對陣列中的每個元素執行計算
let sum = numbers.reduce((acc, n) => acc + n, 0); // 計算總和
console.log(sum); // 輸出 15
4. 返回一個新的陣列
高階函數不僅可以操作原始陣列,還可以返回一個新的陣列,比如:
使用 map
函數
let numbers = [1, 2, 3, 4, 5];
// 使用 map 返回平方數的陣列
let squares = numbers.map(n => n * n);
console.log(squares); // 輸出 [1, 4, 9, 16, 25]
使用 filter
函數
let numbers = [1, 2, 3, 4, 5];
// 使用 filter 返回偶數的陣列
let evenNumbers = numbers.filter(n => n % 2 === 0);
console.log(evenNumbers); // 輸出 [2, 4]
使用 reduce
函數
let numbers = [1, 2, 3, 4, 5];
// 使用 reduce 計算總和
let sum = numbers.reduce((acc, n) => acc + n, 0);
console.log(sum); // 輸出 15
高階函數的靈活性使得它們在 TypeScript 的應用中廣泛且強大。無論是簡單的計算還是複雜的數據處理,高階函數都能提供簡潔且可維護的解決方案。
常見問題解答(Q&A)
Q1: 高階函數有什麼實際應用嗎?
A1: 高階函數可以用於事件處理、數據轉換和狀態管理等多種場景,是現代 web 開發中不可或缺的工具。
Q2: TypeScript 的高階函數與 JavaScript 有什麼不同?
A2: TypeScript 的高階函數基於 JavaScript,並提供了靜態類型檢查,這使得開發者可以在編譯時發現潛在的錯誤,增強了代碼的穩定性。
Q3: 如何確保我的高階函數能夠正常運行?
A3: 確保函數的參數和返回值類型正確,並使用 TypeScript 的型別系統來檢查各個操作的有效性,這樣可以有效減少運行時錯誤。
—