函数与类型
TypeScript 提供了对函数结构的完整类型支持,包括参数、返回值、重载等。
参数与返回值类型
为函数添加明确的参数和返回值类型:
function greet(name: string): string {
return `Hello, ${name}`;
}
可以使用类型推断省略返回值类型:
function square(x: number) {
return x * x;
}
可选参数与默认参数
可选参数使用 ? 声明,默认参数和 JavaScript 一样:
function log(message: string, level?: string) {
console.log(`[${level || "info"}] ${message}`);
}
function multiply(a: number, b: number = 1): number {
return a * b;
}
可选参数必须排在必填参数之后。
剩余参数(Rest Parameters)
与 JavaScript 相同,使用 ... 来接收多个参数:
function sum(...nums: number[]): number {
return nums.reduce((acc, curr) => acc + curr, 0);
}
函数重载
函数重载允许定义多个函数签名:
function reverse(x: string): string;
function reverse(x: number): number;
function reverse(x: string | number): string | number {
if (typeof x === "string") {
return x.split("").reverse().join("");
}
return Number(x.toString().split("").reverse().join(""));
}
注意:真正的实现只能有一个,其他签名用于类型提示。
函数类型是 TypeScript 的核心能力之一,良好的函数类型注解可以提升代码的可读性与可维护性。
相关内容
- 接口与对象类型 TypeScript 中接口(interface)与对象类型的使用方法,包括 interface 与 type 的区别、可选与只读属性、索引签名以及函数类型定义...
- TypeScript 简介 TypeScript 是由 Microsoft 开发的开源编程语言,它是 JavaScript 的一个超集(superset),也就是说,所有合法的 JavaS...
- 类型系统基础 TypeScript 中的基本类型系统,包括原始类型、数组与元组、枚举、any 与 unknown 类型、类型别名与交叉类型等内容。
- 高级类型 介绍 TypeScript 中的高级类型,包括联合类型、类型保护、类型断言、字面量类型、映射类型、条件类型等,帮助开发者灵活使用复杂的类型。
- 类与面向对象 TypeScript 中类的定义方式、继承机制、访问修饰符,以及如何结合接口使用类,并了解抽象类与多态的基础用法。
- 泛型 TypeScript 中泛型的基本概念和用法,包括泛型函数、接口、类,以及泛型约束和默认类型等,帮助开发者灵活构建通用的类型。