Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 3x 3x 3x 3x 3x 3x 3x 3x 6x 6x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 1x 1x 1x 1x 1x | /** * 任務:實作一個函式 `createDataStore`,該函式會建立一個資料儲存庫,該儲存庫有兩個方法:add 和 getAll。 * add 方法用於添加新的項目到儲存庫,getAll 方法用於獲取儲存庫中的所有資料。 * * 範例: * const store = createDataStore<number>(); * store.add(1); * store.add(2); * store.getAll() 應該回傳 [1, 2] * * @returns - 回傳一個物件,該物件有 add 和 getAll 兩個方法 */ export function createDataStore<T>() { // 宣告一個名為 data 的變數,其為 T 型別的陣列,並初始化為空陣列 // T 是一個泛型參數,代表任何型別 // let data const data: T[] = []; // 定義一個名為 add 的函式,該函式接收一個 T 型別的參數 item,並將 item 添加到 data 陣列中 // 這裡的 T 也是泛型,所以 item 可以是任何型別 function add(item: T){ data.push(item); } // 定義一個名為 getAll 的函式,該函式回傳 data 陣列的所有元素 // 回傳的陣列中的元素型別也是 T,所以可以是任何型別 function getAll(){ return data; } return { add, getAll }; } const store = createDataStore<number>(); store.add(1); store.add(2); console.log(store.getAll()); |