TypeScript-函数类型

函数类型

指给函数添加类型注解,本质上就是给函数的参数和返回值添加类型约束

function add(a: number,b: number) :number {return a + b
}
let res: number
res = add(2 + 3)
// 函数参数注解类型之后,不但限制了参数的类型还限制了参数为必填

优点:

  • 避免因参数不对导致的函数内部逻辑错误

  • 对函数起到说明的作用

函数表达式(箭头函数)

注解有两种方式,参数和返回值分开注解和函数整体注解

1️⃣ 参数和返回值分开注解

const add1 = (a: number,b: number) :number => {return a + b
}
add1(1, 2)

2️⃣ 函数整体注解(库文件)

type AddFn = (a: number,b: number) => number
const add2: AddFn = (a, b) => {return a + b
}
add2(2, 3)

可选参数

表示当前参数可传可不传,一旦传递实参必须保证参数类型正确

function buildName(firstName: string, lastName?: string):string {if(lastName){return `${firstName}${lastName}`} else {return firstName}
}console.log(buildName('lucy'))
console.log(buildName('lucy','hang'))

function arrStr(arr: (number | string)[], split?: string): string{return arr.join(split)
}
console.log(arrStr([1,2,3],'*'))
console.log(arrStr(['h','a','p','p','y'],'-'))
console.log(arrStr(['h','a','p','p','y'],''))
console.log(arrStr(['h','a','p','p','y']))

无返回值 - void

Js 中有些函数只有功能没有返回值,此时使用 void 进行返回值注解,明确表示函数没有函数值

⚠️ js中没有返回值,默认返回undefined,在 TS 中 void 和 undefined 不是一回事,undefined 在 TS 中是一种明确的简单类型,如果指定返回值为 undefined,那返回值必须是 undefined 类型

function eachArr(arr: number[]): void {arr.forEach((item) => console.log(item))
}
eachArr([3,2,1])

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/844335.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

富格林:借助正规技巧实现出金

富格林悉知,现货黄金近年来的表现相当出众,相信上车交易现货黄金的投资者,或多或少都在市场中分得一块蛋糕。不过也并不代表所有人都可以轻松在现货黄金中获利,尤其是投资新手。如果没有正规的投资经验观念,就很难实现…

基于Udp(收发信息使用同一个socket)网络通信编程

想要实现网络通信那么就要有一个客户端一个服务器 客户端发送数据,服务器接收数据并返回数据 网络通信就是进程通信 所以我们用两个程序来分别编写客户端和服务器 服务器 1,设置端口号, 2、ip可以固定位127.0.0.1来用于本地测试&#xff0c…

二刷算法训练营Day15 | 二叉树(2/9)

目录 详细布置: 1. 层序遍历 2. 226. 翻转二叉树 3. 101. 对称二叉树 详细布置: 1. 层序遍历 昨天练习了几种二叉树的深度优先遍历,包括: ​​​​​​前中后序的递归法前中后序的迭代法前中后序迭代的统一写法 今天&…

HCIP-Datacom-ARST自选题库__OSPF多选【62道题】

1.如图所示,路由器所有的接口开启OSPF,图中标识的IP地址为设备的LoopbackO接口的IP地址,R1、R2、R3的LoopbackO通告在区域1,R4的Loopback0通告在区域0,R5的LoopbackO通告在区域2,下列哪些IP地址之间可以相互…

【机器学习】基于tensorflow实现你的第一个DNN网络

博客导读: 《AI—工程篇》 AI智能体研发之路-工程篇(一):Docker助力AI智能体开发提效 AI智能体研发之路-工程篇(二):Dify智能体开发平台一键部署 AI智能体研发之路-工程篇(三&am…

传统RNN网络及其案例--人名分类

传统的RNN模型简介 RNN 先上图 这图看起来莫名其妙,想拿着跟CNN对比着学第一眼看上去有点摸不着头脑,其实我们可以把每一个时刻的图展开来,如下 其中,为了简化计算,我们默认每一个隐层参数相同,这样看来R…

7. 核心功能(Core Features)

7. 核心功能(Core Features) 本章节深入介绍 Spring Boot 的详细信息。在这里,你可以了解想要使用的和自定义的主要功能。如果您还没有阅读 “Getting Started” 和 “Developing with Spring Boot” 这两节内容,不放先去阅读这两…

添砖Java(十二)——异常,异常捕获,常见异常方法

异常: 定义:异常通俗来讲,其实就是你写出bug来了,编译器给你报错了。 public static void main(String[] args)throws Exception {int z10/0;} 这个代码虽然说是可以运行,但是编译器会报错。 因为10不能去除以0。 异…

【C++】:vector容器的底层模拟实现迭代器失效隐藏的浅拷贝

目录 💡前言一,构造函数1 . 强制编译器生成默认构造2 . 拷贝构造3. 用迭代器区间初始化4. 用n个val值构造5. initializer_list 的构造 二,析构函数三,关于迭代器四,有关数据个数与容量五,交换函数swap六&am…

C# 数组/集合排序

一&#xff1a;基础类型集合排序 /// <summary> /// 排序 /// </summary> /// <param name"isReverse">顺序是否取反</param> public static void Sort<T>(this IList<T> array, bool isReverse false)where T : IComparable …

Instagram运营必备工具合集

Instagram的运营不仅仅涉及数据分析&#xff0c;还包括内容规划、发布管理、互动提升和广告优化等多个方面。以下是一些海外社媒Instagram运营必备的工具&#xff0c;这些工具可以帮助您更有效地管理和提升您的Instagram账号。 Instagram 运营必备工具合集 数据分析工具 1、Ins…

10种排序算法总结-(c语言实现与动画演示)

算法分类 十种常见排序算法可以分为两大类&#xff1a; 比较类排序&#xff1a;通过比较来决定元素间的相对次序&#xff0c;由于其时间复杂度不能突破O(nlogn)&#xff0c;因此也称为非线性时间比较类排序。非比较类排序&#xff1a;不通过比较来决定元素间的相对次序&#…

什么叫USDT(泰达币)的前世今生!

一、引言 在数字货币的世界里&#xff0c;USDT&#xff08;Tether USDT&#xff09;以其独特的稳定机制&#xff0c;成为了连接传统金融市场与加密货币市场的桥梁。本文将带您了解USDT的诞生背景、发展历程、技术特点以及未来展望。 二、USDT的诞生背景 USDT是Tether公司推出…

antd:动态获取菜单

修改 app.tsx 文件 修改 getInitialState 方法 export async function getInitialState(): Promise<{...menuData?: MenuDataItem[] | undefined;fetchMenuList?: Promise<MenuDataItem[] | undefined>; }> {...const fetchMenuList async () > {const men…

【服务器部署篇】Linux下Node.js的安装和配置

作者介绍&#xff1a;本人笔名姑苏老陈&#xff0c;从事JAVA开发工作十多年了&#xff0c;带过刚毕业的实习生&#xff0c;也带过技术团队。最近有个朋友的表弟&#xff0c;马上要大学毕业了&#xff0c;想从事JAVA开发工作&#xff0c;但不知道从何处入手。于是&#xff0c;产…

ChatGPT的工作原理,这篇文章说清楚了!

作者&#xff1a;史蒂芬沃尔弗拉姆&#xff08;Stephen Wolfram&#xff09;英、美籍 计算机科学家&#xff0c; 物理学家。他是 Mathematica 的首席设计师&#xff0c;《一种新科学》一书的作者。 ChatGPT 能够自动生成一些读起来表面上甚至像人写的文字的东西&#xff0c;这…

《Docker实际应用场景:开发、测试、CI/CD、微服务和容器编排》

Docker实际应用场景&#xff1a;开发、测试、CI/CD、微服务和容器编排 1. 引言 Docker 已成为现代软件开发和部署的重要工具&#xff0c;其在开发、测试、持续集成/持续交付 (CI/CD)、微服务和容器编排等方面的应用尤为广泛。本篇博客将通过具体的案例和场景说明 Docker 在这…

《庆余年算法番外篇》:范闲通过最短路径算法在阻止黑骑截杀林相

剧情背景 在《庆余年 2》22集中&#xff0c;林相跟大宝交代完为人处世的人生哲理之后&#xff0c;就要跟大宝告别了 在《庆余年 2》23集中&#xff0c;林相在告老还乡的路上与婉儿和大宝告别后 范闲也在与婉儿的对话中知道黑骑调动是绝密&#xff0c;并把最近一次告老还乡梅…

汇智知了堂实力展示:四川农业大学Python爬虫实训圆满结束

近日&#xff0c;汇智知了堂在四川农业大学举办的为期五天的校内综合项目实训活动已圆满结束。本次实训聚焦Python爬虫技术&#xff0c;旨在提升学生的编程能力和数据分析能力&#xff0c;为学生未来的职业发展打下坚实的基础。 作为一家在IT教育行业享有盛誉的机构&#xff…

代码随想录算法训练营Day7|454.四数相加II、 383. 赎金信、15. 三数之和、 18. 四数之和

454.四数相加II 四个数组分成两组进行for循环&#xff0c;先用HashMap存储所有第一组for循环出现的和的次数。再进行第二组for循环&#xff0c;每一次得出的和判断其负数是否在map的key中&#xff0c;如果存在&#xff0c;就加上这个value。 class Solution {public int four…