3 .typeScript中的函数

函数的定义

  • 函数传递参数时要指定类型,函数返回值也要指定类型;

  • 函数声明:使用function关键字声明一个函数,在指定一个函数名。

  • 函数表达式:使用function关键字声明一个函数,但是未给函数命名,最后将匿名函数赋予给一个变量

es5的定义方法

//函数声明法
function run(){
    return 'run';
}
//函数表达式
var run2=function(){
    return 'run2';
}

ts中定数的方法

//函数声明法
function run():string{
    return 'run';
}
// 错误写法
function run2():string{
    return 123;
}

//函数表达式
var fun2=function():number{
    return 123;
}
alert(fun2()); /*调用方法*/

ts中定义方法传参

function getInfo(name:string,age:number):string{
    return `${name} --- ${age}`;
}
alert(getInfo('zhangsan',20));

var getInfo2=function(name:string,age:number):string{
    return `${name} --- ${age}`;
}
alert(getInfo2('zhangsan',40));

没有返回值的方法:void表示没有任何类型,一般用于定义方法的时候方法没有返回值

function run():void{
    alert('run')
}
run();

typeScript函数可选参数

ts中实参和形参必须一样,如果不一样就需要配置可选参数

用? 来说明元素是可选的,可选参数必须配置到参数的最后面

可选元素必须在必选元素的后面,也就是如果一个元素后缀了 ?号,其后的所有元素都要后缀 ?号。

正确写法

function getInfo(name:string,age?:number):string{
    if(age){
        return `${name} --- ${age}`;
    }else{
        return `${name} ---年龄保密`;
    }
}
alert(getInfo('zhangsan'))
alert(getInfo('zhangsan',123))

错误写法

function getInfo(name?:string,age:number):string{
    if(age){
        return `${name} --- ${age}`;
    }else{
        return `${name} ---年龄保密`;
    }
}
alert(getInfo('zhangsan'))

typeScript函数的默认参数|可选参数:es5里面没法设置默认参数,ts可以设置默认参数

默认参数

function getInfo(name:string,age:number=20):string{
    if(age){
        return `${name} --- ${age}`;
    }else{
        return `${name} ---年龄保密`;
    }
}
alert( getInfo('张三'));
alert( getInfo('张三',30));

typeScript函数的剩余参数

function sum(a:number,b:number,c:number,d:number):number{
    return a+b+c+d;
}
alert(sum(1, 2, 3, 4));

扩展运算符 数组接受形参传过来的值

function sum2(...result:number[]):number{
    var sum=0;
    for(var i=0;i<result.length;i++){
        sum+=result[i];  
    }
    return sum;
}
alert(sum2(1,2,3,4,5,6)) ;
function sum3(a:number,b:number,...result:number[]):number{
    var sum=a+b;
    for(var i=0;i<result.length;i++){
        sum+=result[i];  
    }
    return sum;
}
alert(sum3(1,2,3,4,5,6)) ;

typeScript函数的函数重载

  • JavaScript是面向过程的语言,没有重载的概念
  • java中方法的重载:重载指的是两个或者两个以上同名函数,但它们的参数不一样,这时会出现函数重载的情况。
  • typescript中的重载:通过为同一个函数提供多个函数类型定义来试下多种功能的目的。【同名函数传入不同参数,执行出不同的结果】
  • ts为了兼容es5 以及 es6 重载的写法和java中有区别。

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

function css(config){}
function css(config,value){}

ts中的重载,参数校验

function getInfo(name:string):string;
function getInfo(age:number):string;
function getInfo(str:any):any{
    if(typeof str==='string'){
        return '我叫:'+str;
    }else{
        return '我的年龄是'+str;
    }
}
alert(getInfo('张三'));//正确
alert(getInfo(20));//正确
alert(getInfo(true));//错误写法

function getInfo2(name:string):string;
function getInfo2(name:string,age:number):string;
function getInfo2(name:any,age?:any):any{
    if(age){
        return '我叫:'+name+'我的年龄是'+age;
    }else{
        return '我叫:'+name;
    }
}
alert(getInfo2('zhangsan'));  /*正确*/
alert(getInfo2(123));  //错误
alert(getInfo2('zhangsan',20));

typeScript函数的箭头函数es6

setTimeout(function(){
    alert('run')
},1000)

setTimeout(()=>{
    alert('run1')
},1000)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值