TS 函数解析
------------------------------------------------------------------------------------ 函数传参: //let myAdd: (baseValue:number, increment:number) => number = function(x: number, y: number): number { return x + y; }; enum EventType { Mouse, Keyboard } interface Event { timestamp: number; } interface MouseEvent extends Event { x1: number; y1: number; } interface KeyEvent extends Event { keyCode: number } function listenEvent(eventType: EventType, handler: (nnnnnnnnnn: Event) => string) { handler(null); return null; } function listenEvent1(eventType: EventType, handler: (nnnnnnnnnn: string) => string) { handler(null); return null; } function listenEvent2(eventType: EventType, handler: (nnnnnnnnnn: Event) => void) { handler(null); return null; } function f(x:string){//(从js来看)声明定义了一个函数 return "vvv"; } function ff(x:string):string{//声明了一个函数, return "vvv"; } var f1 = (x:string) => { //声明定义了一个函数 return x; } var f11 : (x:string) => string; //函数类型 var f111 = (x:string) => { //声明定义了一个函数 return (x) => {return x} } var f2 = () => { //声明定义了一个函数 console.log("1223"); return "sss"; } var f22 = () => null; listenEvent1( EventType.Keyboard, f111("sss") ); //f111("sss") 使用的是返回值 //() => {console.log("1223");console.log("4456");return "1111";} 是定义了一个函数,传的是函数的定义,函数调用的时候才会传真实参数, listenEvent(EventType.Keyboard, (e: MouseEvent) => {console.log("1223");console.log("4456");return "1111";} ); listenEvent2(EventType.Keyboard, (e: MouseEvent) => null ); listenEvent(EventType.Mouse, <(e: Event) => null> ( (e: MouseEvent,s:number) => console.log('e.x' + ',' + 'e.y') ) ); -------------------js 解析 ---------- //let myAdd: (baseValue:number, increment:number) => number = function(x: number, y: number): number { return x + y; }; var EventType; (function (EventType) { EventType[EventType["Mouse"] = 0] = "Mouse"; EventType[EventType["Keyboard"] = 1] = "Keyboard"; })(EventType || (EventType = {})); function listenEvent(eventType, handler) { handler(null); return null; } function listenEvent1(eventType, handler) { handler(null); return null; } function listenEvent2(eventType, handler) { handler(null); return null; } function f(x) { return "vvv"; } function ff(x) { return "vvv"; } var f1 = function (x) { return x; }; var f11; //函数类型 var f111 = function (x) { return function (x) { return x; }; }; var f2 = function () { console.log("1223"); return "sss"; }; var f22 = function () { return null; }; listenEvent1(EventType.Keyboard, f111("sss")); //f111("sss") 使用的是返回值 //() => {console.log("1223");console.log("4456");return "1111";} 是定义了一个函数,传的是函数的定义,函数调用的时候才会传真实参数, listenEvent(EventType.Keyboard, function (e) { console.log("1223"); console.log("4456"); return "1111"; }); listenEvent2(EventType.Keyboard, function (e) { return null; }); listenEvent(EventType.Mouse, (function (e, s) { return console.log('e.x' + ',' + 'e.y'); })); ----------------------------------------------------------
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 数据库服务器 SQL Server 版本升级公告
· 程序员常用高效实用工具推荐,办公效率提升利器!
· C#/.NET/.NET Core技术前沿周刊 | 第 23 期(2025年1.20-1.26)