第二章 TypeScript 函数详解

在 TypeScript 中,函数是实现特定功能的重要组成部分。

一、函数声明基础语法

使用 `function` 关键字声明函数,

例如:

复制代码
 function sum(a: number, b: number): number { return a + b; }

这里,`function` 是定义函数的关键字,`sum` 是函数名称,`a` 和 `b` 是参数,参数类型为 `number`,函数的返回值类型也为 `number`。

二、参数详解

1. 可选参数 通过在参数名后添加 `?` 来标识可选参数。

例如:

复制代码
function getPersonInfo(name: string, age: number, gender?: string): string { if (gender === undefined) { gender = '未知'; } return `name:${name},age:${age},gender:${gender}`; }

调用时可以不传递可选参数,此时该参数值为 `undefined`。

2. 默认参数 可以在参数列表中为参数指定默认值。

例如:

复制代码
 function fun1(name: string, age: number, gender: string = '未知'): string { return `name:${name},age:${age},gender:${gender}`; } 

三、特殊类型

1. 联合类型 当函数可能处理不同类型的值时,可以使用联合类型。

例如:

复制代码
function numOrString(message: number | string) { console.log(message); }
2. 任意类型 若函数需要处理任意类型的值,可使用 `any` 类型。

例如:

复制代码
 function funAny(message: any) { console.log(message); } 

四、返回值详解 如果函数没有返回值,使用 `void` 作为返回值类型。

例如:

复制代码
function demo(): void { console.log("aaaa"); }

五、函数声明特殊语法

1. 匿名函数 匿名函数适合简单且只使用一次的场景。

例如:

复制代码
 let numTest: number[] = [1, 2, 3]; 
numTest.forEach(function (number) { console.log(number); }); 

匿名函数能根据上下文推断参数类型,参数类型可省略。

2. 箭头函数 进一步简化匿名函数,只保留参数列表和函数体,用 `=>` 连接。

例如:

复制代码
 let num3: number[] = [1, 2, 3, 4, 5]; num3.forEach((num4) => { console.log(num4); }); 

总结

TypeScript 中的函数具有丰富的特性和灵活的用法。通过明确参数类型和返回值类型,可以提高代码的可读性和可维护性。可选参数和默认参数为函数的调用提供了更多的灵活性。联合类型和任意类型允许函数处理不同类型的值。而特殊语法如匿名函数和箭头函数则为开发者提供了简洁高效的编程方式。掌握 TypeScript 函数的这些特性,有助于开发出更加健壮、高效的应用程序。

相关推荐
xier1234567 分钟前
高性能和高灵活度的react表格组件
前端
曦曜2928 分钟前
富文本编辑器
javascript
你打不到我呢9 分钟前
nestjs入门:上手数据库与prisma
前端
多啦C梦a10 分钟前
React 实战:从 setInterval 到 useInterval,一次搞懂定时器 Hook(还能暂停!)
前端·javascript·react.js
闲不住的李先森16 分钟前
乐观更新
前端·react.js·设计模式
笔尖的记忆23 分钟前
【前端架构和框架】react组件化&数据流
前端·面试
zhangzelin88831 分钟前
TypeScript入门指南:JavaScript的类型化超集
前端·javascript·其他·typescript
lichenyang45339 分钟前
流式聊天界面实现解析:从零到一构建实时对话体验
前端
天蓝色的鱼鱼39 分钟前
Turbopack vs Webpack vs Vite:前端构建工具三分天下,谁将胜出?
前端·webpack
软件技术NINI1 小时前
html css js网页制作成品——化妆品html+css+js (7页)附源码
javascript·css·html