前端 TS 快速入门之四:函数

news/2025/2/5 14:45:44/

1. 为函数定义类型

一般使用中,我们可以不必完整写出函数类型,因为 TypeScript 会为我们自动推断出类型,需要注意的是:类型中的参数名称可以不必和值中的参数名称匹配,只要它们类型是兼容的便可。

// 书写完成函数类型
let sum: (num1: number, num2: number) => number;
sum = function(num1, num2) {return num1 + num2
}
sum(1,2) // 3

 2. 可选参数

参数名后面接一个 ?,该参数便成为了可选参数。注意:可选参数必须跟在必须参数后面

let square: (x: number, y: number, s?: number) => number;
square = function(width: number, height: number, scale?: number): number {if (scale) {return width * height * scale;} else {return width * height;}
};
square(5, 6); // 30
square(5, 6, 2); // 60

 3. 默认参数

当用户没有给一个参数传递值或者传递的值是 undefined 时,这个参数叫做可以有默认值的参数,我们可以使用 = 指定这种情况下的取值,在所有的必须参数后面带默认值的参数都是可选的,与可选参数一样,在调用函数的时候是可以省略的,但是有默认值的参数不一定要放在必须参数的后面,也可以放在前面,当传入 undefined 的时候,就会取默认参数指定的默认值。

function square(width = 6, height = 6, scale: number, cut = 10): number {return width * height * scale - cut;
}
square(5, undefined, 2); // 5 * 6 * 2 - 10 = 50

4. 剩余参数

function max(a: number, b: number, ...resArr: number[]): number {return Math.max(a, b, ...resArr);
}
max(10, 5, 6, 100, 200); // 200


http://www.ppmy.cn/news/1171565.html

相关文章

三刷操作系统之一文带你搞懂FreeRTOS——信号量

信号量是操作系统中重要的一部分,信号量一般用来进行资源管理和任务同步,FreeRTOS中信号量又分为二值信号量、计数型信号量、互斥信号量和递归互斥信号量。不同的信号量其应用场景不同。 1.信号量简介 信号量常常用于控制对共享资源的访问和任务同步。举一个很常见的例子,…

阿里企业邮箱域名解析MX记录表

阿里企业邮箱配置需要为域名添加MX解析记录,不只是MX域名解析记录值,还需要为域名添加pop3、imap、smtp及mail等CNAME解析类型,阿里云百科aliyunbaike.com分享阿里云企业邮箱域名MX解析记录类型、记录值及服务器地址: 新版阿里企…

MacOS Mojave(苹果14系统) v10.14.6中文离线安装包

MacOS Mojave是一款先进的操作系统,它拥有诸多出色的特性。其中,夜间模式可以根据时间或用户设置自动切换,改变了UI、壁纸和窗口的样式,使界面在夜晚使用时更为舒适。另外,新的堆栈和群组功能让用户能更方便地分类和整…

hello react

react中文官网 一、什么是react React是一个由Facebook开源的JavaScript库,用于构建用户界面。它基于组件化的思想,将界面拆分成多个独立的、可复用的组件,并通过组件之间的交互构建整个用户界面。React使用虚拟DOM(Virtual DOM…

(C语言)力扣189.轮转数组

目录 1.分析 2.代码实现 1.分析 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 首先通过分析,要将数组中的各个元素都挪动位置,所以考虑到,如果在同一数组内操作会因为前面位置已经被…

如何使用 VuePress 搭建博客网站并 Vercel 部署

先来看一下网站截图: 快速上手 1.创建并进入一个新目录 mkdir vuepress-starter && cd vuepress-starter2.使用你喜欢的包管理器进行初始化 yarn init # npm init3.将 VuePress 安装为本地依赖 yarn add -D vuepress # npm install -D vuepress4.创建你…

神器抓包工具 HTTP Analyzer v7.5 的下载,安装,使用,破解说明以及可能遇到的问题

文章目录 1、HTTP Analyzer 工具能干什么?2、HTTP Analyzer 如何下载?3、如何安装?4、如何使用?5、如何破解?6、Http AnalyzerStd V7可能遇到的问题 1、HTTP Analyzer 工具能干什么? A1:HTTP A…

React-Redux总结含购物车案例

React-Redux总结含购物车案例 reduc简介 redux是react全家桶的一员,它为react给i共可预测化的状态管理机制。redux是将整个应用状态存储到一个地方,成为store,里面存放着一颗树状态(state,tree),组件可以派发dispatch行为action给store,而不是直接通知其…