let listA:number[] = [1,2,3]; listA.push(4); let listB:Array<number>=[1,2,3]; console.dir(listA); console.dir(listB); let mySum = function(x:number, y:number):number{ return x+y; } console.log(mySum(1,2)); let mySum2 = (x:number, y:number):number=>x+y; console.log(mySum2(2,3)); ///對右側匿名函數進行類型定義 (x:number, y:number)=>number let mySum3:(x:number, y:number)=>number = function(x:number, y:number):number{ return x+y; } console.log(mySum3(3,4)); ///如果只有一條語句,不僅省掉了"{}",連 "return" 都給省掉了. mySum4和mySum5等價 let mySum4:(x:number, y:number)=>number = (x:number, y:number):number => x+y; let mySum5:(x:number, y:number)=>number = (x:number, y:number):number => { return x+y}; console.log(mySum4(5,6)); console.log(mySum5(5,6)); let mySum6:(x:number, y:number)=>void = (x:number, y:number):void => { x = x+y; console.log(x); }; mySum6(100,200); ///箭頭函數返回一個對象 let getTempData = (id:number) =>({ userID:id, name:"Henry" }); console.log(getTempData(666)); console.log(getTempData(666).userID); console.log(getTempData(666).name); ///不帶參數,有返回值 let mySum7 = ():number=>{ ///do something... return 666; }; //不帶參數,沒有返回值 let mySum8 = ()=>{ ///do something... return 666; }; function doesNotReturn() { console.log("---doesNotReturn---"); } //不帶參數,沒有返回值,而且只有一條語句 let mySum9 = () => void doesNotReturn(); ///執行 右側的函數.沒有返回值.. mySum9(); const isEven = (n:number) => n % 2 === 0 ; const square = (n:number) => n * n; console.log(isEven(1)); console.log(isEven(2)); // 箭頭函數寫法 let test1 = [1,2,3]; console.dir(test1.map(x => x * x)); console.dir(test1); // 正常函數寫法 let values1 = [6,4,2,1,5,3]; let values2 = [5,3,2,1,4,6]; var result1 = values1.sort(function (a, b) { return a - b; }); // 箭頭函數寫法 var result2 = values2.sort((a, b) => a - b); console.log(result1); console.log(result2); //=============嵌套的箭頭函數 let insert = (value:number) => ( {into: (array:Array<number>) => ( {after: (afterValue:number) => { array.splice(array.indexOf(afterValue) + 1, 0, value); return array; } } ) } ); //把某個數,插入到數組中某個元素后面 console.log(insert(5).into([4, 5, 6, 7]).after(6));
參考地址:
https://es6.ruanyifeng.com/#docs/function#%E7%AE%AD%E5%A4%B4%E5%87%BD%E6%95%B0
