TypeScript学习笔记2---ts的函数定义详解

news/2024/9/24 10:14:31/

前言:

TS中函数定义和JS是一模一样的,可以是普通函数申明,也可以函数表达式

但是在TS中针对函数做了很多的约束、函数的参数进行约束、函数的返回值进行了约束

一、函数的参数

在函数形参进行了约束,在传递值的时候,就必须按照指定的参数类型传递

  • 参数个数必须满足要求
  • 每个位置参数,数据类型一定要匹配

1、参数是数字和字符串时:

// 普通函数定义
function show(params:number,params2:string){console.log(params);console.log(params2);  
}
show(1,"xiaowang")

2、参数是对象/数组时:

const play = (user: { id: number }) => {console.log(user.id);
}
play({ id: 1 })const play2 = (stus:string[]) => {console.log(stus); 
}
play2(["1","2"])

3、参数是可变参数时:

const play3 = (params:number,...params2:number[]) => {console.log(params);  // 1console.log(params2); // [2,3,4,5,6,7,8]
}// 表示可变参数:参数的个数可以动态变化
play3(1,2,3,4,5,6,7,8)

 二、函数的返回值

  • 你在TS中定义每个函数都应该有返回结果。
  • 就算函数不需要返回,我们也应该告诉调用者,当前函数没有返回结果
// void代表当前函数没有返回结果,不写默认编辑器添加
function eat(num1:number):void{console.log(num1);return;
}
eat(10)function eat2(num1:number,num2:number):string{const result:string = num1 + num2 + "";return result
}
const total2:string = eat2(20,30)

ps:写到这里可能用习惯了js的人会觉得很繁琐 ,俺第一次用的时候也很痛苦。

代码量看起来多了,写的时候也变慢了。。。但是其实是因为我们把思考的过程从报错的时候转移到了写代码的时候,用了ts之后,我们在浏览器f12控制台排bug的时间就减少了!


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

相关文章

django之bulk_create

在 Django 中,批量创建对象可以显著提高性能,特别是在需要创建大量对象时。Django 提供了 bulk_create 方法来实现这一点。 假设的模型 首先,假设有一个简单的模型 Book,包含书名和作者字段。 # models.py from django.db impo…

Thinkphp6框架 AI网址导航系统源码

最新的 thinkphp 6.1 开发的 AI 网址导航是一个非常实用的工具,它能够帮助用户方便地浏览和管理自己喜欢的网站。相比于其他的 AI 网址导航,这个项目使用了更加友好和易用的 ThinkPHP 框架进行搭建,使得开发者和用户都能够轻松上手。

SQL - 子查询

子查询可以写的位置:select、from、where子查询可以返回一个值:一个列的一些值,一个结果集(表)子查询的作用:可以作为条件判断的范围,作为判断条件,可以返回特定结果值,与子查询相关&#xff1a…

RCE与SQL漏洞的复现

eval长度限制突破 php eval函数参数限制在16个字符的情况下,如何拿到webshell呢 首先,我们还是先把环境搭好(此次的所有漏洞环境我都部署在Ubuntu下,我的Ubuntu下的环境是nginxphp,至于Ubuntu下的nginxphp环境我也有博客也写到&a…

二、什么是Vue中的响应式?Vue的响应式原理

什么是Vue中的响应式 Vue中的响应式,简而言之就是当数据发生变化时,页面跟随变化。使用过Vue的v-model都有比较深刻的感受,我们在代码中修改双向绑定的数据后,页面上的数据也会自动更新,页面跟随变化 我们看个例子&am…

《深入浅出多模态》(八)多模态经典模型:MiniGPT4

🎉AI学习星球推荐: GoAI的学习社区 知识星球是一个致力于提供《机器学习 | 深度学习 | CV | NLP | 大模型 | 多模态 | AIGC 》各个最新AI方向综述、论文等成体系的学习资料,配有全面而有深度的专栏内容,包括不限于 前沿论文解读、…

TypeScript学习笔记(二)——TypeScript 高级类型

目录 1. class 类 1.1 class 关键字的基本使用 1.2 类继承 1.3 类成员可见性 1.4 类成员只读修饰符 2. 类型兼容性 2.1 类型兼容性 2.2 接口兼容性 2.3 函数兼容性 3. 交叉类型 4. 泛型 4.1 创建泛型函数 4.2 泛型约束 4.3 多个泛型的类型变量约束 4.4 泛型接口…

搭建内网开发环境(二)|Nexus安装及使用

引言 上一篇教程中按照了 docker 作为容器化工具,在本篇教程中将使用 docker-compose 安装 nexus。 搭建内网开发环境(一)|基于docker快速部署开发环境 什么是 Nexus Nexus是一个强大的仓库管理器,主要用于搭建和管…