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