TypeScript学习笔记(二) | 函数

227 阅读1分钟

| 函数

1. 函数的定义
函数声明定义

function getStr():string { // 指定字符类型必须返回字符类型
    return 'dada'  
}

匿名函数定义

let getStr = function():string {
    return 'dada';
}

函数传参

function getInfo(name:string, age:number):string {
    return `${name};${age}`
}
// 匿名
let getInfo = function(name:string, age:number):string {
    return `${name};${age}`
}

没有返回值的方法

function toRun(): void {
    console.log('to run');
}

2. 可选参数
ts中指定了方法参数就一定要传参才行,对于不需要传参的function可以设置可选参数。

// 可选参数, age后面加个问号表示可选
function getInfo(name:string, age?:number):string {
    return `${name};${age}`
}

3. 默认参数

function getInfo(name:string, age:number=20):string { // 不传就默认20
    return `${name};${age}`
}

4. 剩余参数
利用三点运算符来把参数接收过来,不管你传多少个参数都能接收

function sum(...result: number[]): number {
    let sum = 0;
    for (let i = 0; i < result.length; i++) {
        sum += result[i];
    }
    return sum;
}

console.log(sum(1,2,3,4,5)); // 15
console.log(sum(1,2,3,4)); // 10

5. 函数重载
与java有一点点不同
函数的重载是函数的名称相同,但是参数类型不同的几个函数,而这就是函数的重载

// 传入什么就找对应的方法,没有这种类型就报错
function getInfo(name:string):string;
function getInfo(age: number):number;
function getInfo(str:any):any {
            return str;
}
console.log(getInfo('zs')); // zs  对应1
console.log(getInfo(18)); // 18  对应2
console.log(getInfo([1,2,3])); // [1,2,3] 对应3