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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?