TypeScript箭頭函數(第2篇)


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

 https://www.jianshu.com/p/f97fc6bc0d56


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM