2.函数的定义及函数的参数

2020-02-10  本文已影响0人  我只会吃饭

函数的定义

// 函数式
function run2():void {

}

run2();

// 赋值表达式
let run3 = function ():void {

}

run3();

函数的参数 (必传)

function person(name:string, age:number):object {
    return {
        name,
        age
    }
}

// 形参必传
console.log(person('hyj', 18));

// console.log(person('hyj')); // 报错

函数的可选参数

可选参数 使用 '?'
可选参数必须配置到参数的后面


function person1(name:string, age?:number):object {
    return {
        name,
        age
    }
}

console.log(person1('hyj'));

函数的默认参数

function person2(name:string, age:number=18):object {
    return {
        name,
        age
    }
}

console.log(person2('hyj'));

函数的 剩余参数

使用扩展运算符

// 扩展运算符 处理多于的参数
function sumTotal(a:number, b:number, ...argu:number[]):number {
    let res:number = a + b;
    return argu.reduce((a, b) => a + b, res);
}

函数的重载

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

function people(name:string):string;
function people(age:number):number;
function people(desc:any):any {
    return typeof desc === 'string' ? '我叫' + desc : '我芳龄' + desc;
}

console.log(people('hyj'));
console.log(people(18));
// console.log(people(true)); // 报错 没有这个类型


function people1(name:string):string;
function people1(name:string, age:number):string;
function people1(name:any,age?:any):any {
    return typeof age !== 'number' ? '我叫' + name : {name, age};
}

console.log(people1('hyj'))
console.log(people1('hyj', 18))
上一篇下一篇

猜你喜欢

热点阅读