TypeScript学习第三篇 - 函数的定义

1. 函数声明法;

function run():string{
    return 'abc'
};

2. 匿名函数法;

var func = function ():number{
    return 123
};
func();

3. 定义方法传参,参数与方法名都要声明类型;

function getInfo(name:String,age:number):string{
    return `${name}---${age}`;
};
getInfo('张三',30);

4. 匿名函数传参,参数与方法名都要声明类型;

var getInfo = function(name:String,age:number):string{
    return `${name}---${age}`;
};
getInfo('张三',30);

5. 没有返回值的方法;

function run():void{
    console.log('这是一个没有返回值的方法');
}

6. 在TypeScript中形参和实参必须一样,如果不一样就要配置可选参数,对可传可不传的参数添加 ?号;

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

7. 在TypeScript中设置默认参数;

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

8. ES6 剩余参数在TS中的用法;

function sum(a:number,b:number,...result:number[]):number{
    // a+b = 1+2;
    let sum_result = a+b;
    // result 等于3、4、5、6
    for(let i = 0;i<result.length;i++){
        sum_result += result[i];
    };
    return sum_result;
};
console.log(sum(1,2,3,4,5,6));
// 21

9. TypeScript中的函数重载,重载即为两个或两个以上的同名函数,根据参数的个数或类型不同选择性执行其中的某一个,从而得到不同的结果;

在ES5中有同名函数时,后面声明的函数会把前面声明函数给覆盖,而在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;
    }
};
console.log(getInfo('张三'));
// 我叫张三
console.log(getInfo(30));
// 我的年龄是30

上面的方法变化一下,还可以写成下面这样。

function getInfo(name:string):string;
function getInfo(name:string,age:number):string;
function getInfo(name:string,age?:any):any{
    if(age){
        return '我叫'+name+',我的年龄是'+age;
    }else{
        return '我叫'+name;
    }
};
console.log(getInfo('张三'));
// 我叫张三
console.log(getInfo('张三',30));
// 我叫张三,我的上龄是30

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

aiguangyuan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值