螺竹编程
发布于 2024-05-27 / 3 阅读
0

TypeScript/函数:函数介绍

在TypeScript中,函数是一段可以被重复调用的代码块。函数可以接受参数,执行一些操作,然后返回一个值。函数可以被定义为具有特定的参数和返回值类型,这样可以在编译时进行类型检查。

函数的定义

函数可以使用function关键字来定义。函数的定义包括函数名、参数列表和函数体。函数名用于标识函数,参数列表用于指定函数所接受的参数,函数体包含了实际的代码。函数的返回值类型可以使用冒号指定。

例如:

function add(a: number, b: number): number {
  return a + b;
}

这个函数的名称是add,它接受两个参数ab,类型都是number,返回值类型也是number。函数体中的代码是将两个参数相加并返回结果。

函数的调用

函数的调用就是在代码中使用函数名来执行函数。调用函数时,需要传入与函数定义中所指定的参数类型和数量相匹配的参数。当函数被调用时,函数体中的代码会被执行,然后函数会返回一个值。

例如:

let result: number = add(2, 3); // 调用add函数并传入参数2和3
console.log(result); // 输出5

可选参数和默认参数

在TypeScript中,函数可以定义可选参数和默认参数。

可选参数

可选参数可以在函数定义时使用问号?来标记。可选参数可以出现在参数列表的末尾,但不能出现在必须参数的前面。

例如:

function sayHello(name?: string) {
  if (name) {
    console.log("Hello, " + name + "!");
  } else {
    console.log("Hello, world!");
  }
}
sayHello(); // 输出"Hello, world!"
sayHello("John"); // 输出"Hello, John!"

在这个例子中,name参数被标记为可选参数,因此可以在调用函数时不传入参数。当不传入参数时,函数会输出默认的问候语;当传入参数时,函数会输出带有参数的问候语。

默认参数

默认参数可以在函数定义时使用赋值符=来标记。默认参数与可选参数类似,但其在函数调用时可以省略。如果省略了默认参数,则会使用默认值。

例如:

function sayHello(name: string = "world") {
  console.log("Hello, " + name + "!");
}
sayHello(); // 输出"Hello, world!"
sayHello("John"); // 输出"Hello, John!"

在这个例子中,name参数被标记为默认参数,并被指定为"world"。当不传入参数时,函数会输出默认的问候语;当传入参数时,函数会输出带有参数的问候语。

剩余参数

在TypeScript中,函数可以使用剩余参数语法来接受不定数量的参数。剩余参数是一个数组,其中包含了所有传入的额外参数。

例如:

function sum(...numbers: number[]): number {
  let result: number = 0;
  for (let num of numbers) {
    result += num;
  }
  return result;
}
console.log(sum(1, 2, 3, 4, 5)); // 输出15

在这个例子中,sum函数使用剩余参数语法来接受不定数量的参数。函数体中的代码会遍历所有传入的参数,并将它们相加。最后函数会返回总和。

函数重载

在TypeScript中,函数重载允许我们定义多个函数签名,以便针对不同的参数类型和数量进行不同的操作。当调用函数时,TypeScript会根据参数类型和数量来选择正确的函数实现。

例如:

function add(x: number, y: number): number;
function add(x: string, y: string): string;
function add(x: any, y:any): any {
  if (typeof x === "number" && typeof y === "number") {
    return x + y;
  } else {
    return x.toString() + y.toString();
  }
}
console.log(add(2, 3)); // 输出5
console.log(add("Hello, ", "world!")); // 输出"Hello, world!"

在这个例子中,我们定义了两个函数签名,一个接受两个number类型的参数并返回number类型的结果,另一个接受两个string类型的参数并返回string类型的结果。当调用add函数时,TypeScript会根据传入的参数类型和数量来自动选择正确的函数实现。