TypeScript函数

函数格式

// 格式一
function 函数名(参数列表): 返回值类型 {
    函数体 ...
    [return 返回值;]
}
//格式二
let 函数名 = function (参数列表): 返回值类型 {
    函数体 ...
    [return 返回值;]
};

函数参数

必选参数

参数列表里边的参数就是必选参数,只要在声明的时候写了参数,在传递的时候,就必须传入参数,而且,实参与形参的数量与类型要一致。

function fn(name: string, age: number): string {
    return `${name} --- ${age}`;
}

console.log(fn("张三", 28)); // 正确
console.log(fn("张三")); // 错误
console.log(fn(28)); // 错误

可选参数

解决在函数传参的时候,某些参数可以不用传递,我们就需要可选参数了。
可选参数必须配置到参数的最后面。

function fn(name: string, age?: number): string {
    return `${name} --- ${age}`;
}

console.log(fn("张三", 28)); // 正确
console.log(fn("张三")); // 正确
console.log(fn(28)); // 错误

默认参数

为了解决在函数传参的时候,某些参数可以不用传递,但又需要该参数的值,这时候我们就需要给这个参数设定一个默认值也叫初始化值,就得用到默认参数了。
可选参数不能够进行初始化值的设定。

function fn(name: string, age: number = 20): string {
    return `${name} --- ${age}`;
}

console.log(fn("张三", 28)); // 正确
console.log(fn("张三")); // 正确
console.log(fn(28)); // 错误

剩余参数

在参数的类型确定而参数个数不确定的情况时,我们需要用到剩余参数,它使用 ... 将接收到的参数传到一个指定类型的数组中。
剩余参数必须配置到参数的最后面。

//格式一
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, 6));
//格式二
function sum(init: number, ...result: number[]): number {
    let sum = init;
    for (let i = 0; i < result.length; i++) {
        sum += result[i];
    }
    return sum;
}

console.log(sum(100, 1, 2, 3, 4, 5, 6));


函数重载

函数名称相同,但是参数的个数或者类型不同。
优势:

1.结构分明
2.各司其职,自动提示方法和属性
3.更利于功能拓展

// 函数的定义
function add(num1: number, num2: number): number;
function add(num1: string, num2: string): string;
// 函数的实现
function add(num1: any, num2: any): any {
    return num1 + num2;
}

function fn(type: number): number // 根据ID查询记录
function fn(type: string): string  // 根据类型查询记录
function fn(type: any ): any {
    if(typeof type === "number") {
      //return  ...
    } else {
     //return  ...
    }
}

箭头函数

setTimeout(function () {
    console.log("匿名函数执行了...");
}, 1000);

setTimeout(() => {
    console.log("箭头函数执行了...");
}, 1000);


  转载请注明: 小浩之随笔 TypeScript函数

 上一篇
TypeScript类 TypeScript类
类的定义 //定义一个Person类 class Person { name: string; constructor(name: string) { this.name = name; }
2021-10-22
下一篇 
TypeScript数据类型 TypeScript数据类型
变量格式 //格式一 let 变量名: 变量类型 = 初始化值; //格式二 let 变量名: 变量类型 | undefined; 变量名 = 变量值; 布尔类型 let flag: boolean = true; console.log
2021-10-20
  目录