Typescript学习笔记——Typescript中的函数

一、函数的定义

// es5定义函数的方法

// 函数声明法

function fun(){

   return 'run';

}

// 匿名函数

var run2=function(){

   return 'run';

}

// ts中定义函数的方法

// 函数声明法

function fun():string{

   return 'run';

}

// 匿名函数

var run2=function():number{

   return 123;

}

// ts中定义方法传参

// 函数声明法

function getInfo(name:string,age:number):string{

     return `${name} --- ${age}`;

}

// 匿名函数

var getInfo=function(name:string,age:number):string{

     return `${name} --- ${age}`;

}

// 没有返回值的方法

function run:void(){

  console.log('run')

}

// 方法可选参数

// es5里面方法的实参和行参可以不一样,但是ts中必须一样,如果不一样就需要配置可选参数

function getInfo(name:string,age?:number):string{

     if(age){

          return `${name} --- ${age}`;

     }else{

          return `${name} --- 年龄保密`;

     }

}

// 注意可选参数必须配置到参数的最后面

// 默认参数

// es5里面没法设置默认参数,es6和ts中都可以设置默认参数

function getInfo(name:string,age:number=20):string{

     if(age){

          return `${name} --- ${age}`;

     }else{

          return `${name} --- 年龄保密`;

     }

}

// 剩余参数

// ...三点运算符 接受形参传过来的值

function sum(...result:number[]):number{

    var sum=0;

    for(var i=0;i<result.length;i++){

        sum+=result[i];

    }

    return sum;

}

 

function sum(a:number,b:number,...result:number[]):number{

    var sum=a+b;

    for(var i=0;i<result.length;i++){

        sum+=result[i];

    }

    return sum;

}

// 函数重载

// java中的方法的重载:重载指的是两个或者两个以上同名函数,但它们的参数不一样,这时会出现函数的重载的情况

// typescript中的重载:通过为同一个函数提供多个函数类型定义来试下多种功能的目的

// ts为了兼容es5以及es6重载的写法和java中有区别

 

// es5中出现同名方法,下面的会替换上面的方法

function css(config){

}

function css(config,value){

}

// ts中的重载

function getInfo(name:string):string;

funciton getInfo(age:number):number;

funciton getInfo(str:any):any{

   if(type str==='string'){

       return '我叫:'+str;

   }else{

       return '我的年龄是'+str;

   }

}

// 箭头函数 es6     箭头函数里面的this指向上下文

setTimeout(function(){

   alert('run')

},1000)

setTimeout(()=>{

   alert('run')

},1000)

posted on   健康哥哥lx  阅读(44)  评论(1编辑  收藏  举报

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

点击右上角即可分享
微信分享提示