Skip to content

函数

在 TypeScript 中,函数(Function)的定义和使用结合了 JavaScript 的灵活性和静态类型的严格性,旨在提供更好的代码可读性和类型安全性。以下是一些关于如何在 TypeScript 中声明和使用函数的关键点:

基本函数声明

ts
function add(a: number, b: number): number {
  return a + b;
}
  • 类型注解:在参数和返回值前添加类型注解,如 a: number 表示参数 a 必须是 number 类型,return number 表示函数返回值是 number 类型。

函数表达式

ts
const subtract = function (x: number, y: number): number {
  return x - y;
};
  • 相较于函数声明,函数表达式允许你将函数赋值给变量,也可以实现匿名函数。

箭头函数

ts
const multiply = (x: number, y: number): number => {
  return x * y;
};
  • 箭头函数提供了一种更简洁的函数表达方式,当函数体只有一条语句时,可以省略花括号和 return 关键字。

可选参数和默认参数

ts
function greet(name: string, greeting?: string, punctuation = "!") {
  if (!greeting) greeting = "Hello";
  return `${greeting}, ${name}${punctuation}`;
}
  • ? 表示参数可选,= value 设置参数的默认值。

剩余参数(Rest Parameters)

ts
function sum(...numbers: number[]): number {
  return numbers.reduce((acc, curr) => acc + curr, 0);
}
  • 使用 ... 表示剩余参数,它会收集额外的参数为一个数组。

函数重载

ts
function handleRequest(url: string): void;
function handleRequest(url: string, method: string): void;
function handleRequest(url: string, method?: string): void {
  // 实现逻辑
}
  • 函数重载允许你定义多个函数签名,以便在调用时根据参数类型和数量进行匹配。

泛型函数

ts
function identity<T>(arg: T): T {
  return arg;
}
  • 泛型函数允许你编写一个函数,该函数可以接受不同类型的参数,并返回相同类型的值。

this 类型

在某些情况下,你可能需要明确函数内的 this 类型,特别是在使用箭头函数以外的情况,可以使用 this: 类型 来定义。

TypeScript 的函数功能强大,通过类型注解和高级特性,提高了代码的健壮性和可维护性。

Released under the MIT License.