函数
在 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 的函数功能强大,通过类型注解和高级特性,提高了代码的健壮性和可维护性。