首页 > 其他分享 >【TS】函数和函数类型

【TS】函数和函数类型

时间:2023-01-29 21:11:33浏览次数:47  
标签:函数 number 接口 TS add 类型 返回值

在使用函数的时候,通常会给函数传值,或者给函数一个返回值调用,这个时候就会涉及到函数类型。
函数类型分为两个方面:
1、函数参数
2、函数返回值
语法: function 函数名( 参数 : 参数类型 ) : 返回值类型 { return 返回值 }
函数有几种不同的写法,分别为:声明函数、匿名函数。

声明函数: 也称为函数声明命名函数,下面是声明函数的写法:

  function add ( x : number ,y : number) : number {
    return x + y
  }
  console.log(add(1,2));  // 打印 3

函数add需要两个参数,xy,并且这两个参数的类型都为数字,且这个函数必须有一个返回值,返回值为numberadd() : number 这个 number 就是返回值规定的类型。


匿名函数: 也称为匿名函数函数表达式,以表达式的形式呈现,写法跟声明函数一样,在括号内规定数据类型,括号外面规定返回值类型。

const add2 = function ( x : number , y : number ) : number {
    return  x + y
}
console.log(add2(3,3)); // 打印 6

函数add需要两个参数,xy,并且这两个参数的类型都为数字,且这个函数必须有一个返回值,返回值为number。 add() : number 这个 number 就是返回值规定的类型。


无返回值
并不是所有的函数都有返回值,函数可以没有返回值,如果没有返回值,或者返回值为空,在函数()后面: () : xxx 换成void即可,void就是无返回值,写成any也行,any可以返回任何类型。

// 无返回值 无返回值使用 void 或 any 即可
const emptys = ( params : number) : void => {
  console.log(params);
}
emptys(2)

函数类型的完整写法

const add3 : ( x : number , y : number ) => number = function ( x : number , y : number ) : number {
    return x + y
}
console.log(add3(10,10));  // 打印 20

步骤拆解:
1、add3 : ( x : number , y : number ) : number 这里为规定的函数类型,在这个地方定义了后,函数里面传参必须符合这里定义的规则。传两个参数,类型为number,返回值为number
2、function ( x : number , y : number ) : number { return x + y } 这里就是给函数传参和函数返回值类型规范,这里的规范必须符合前面定义的规范,否则报错。
一般不会用这种写法, 比较繁琐,这里只是举例说明一下。


函数类型使用接口
在函数类型传参中,既然在传参这里规定了数据类型,直接写在函数体上比便于阅读,看起来复杂且长,所以可以使用接口来优化代码,使阅读起来更加简洁。

// 定义接口
interface IPerson {
  username : string
  age : number
}

const person = (data : IPerson) : string => {
   return  `姓名:${data.username},年龄:${data.age}`
}

person函数中,传入的值必须是符合 IPerson 接口的规范,函数必须有返回值,返回值为 string 类型

// 参数
let obj = {
  username : '东方不败',
  age : 18
}
console.log(person(obj));   // 打印 姓名:东方不败,年龄:18

另外,接口是可以继承的,也就是说可以将多个接口组装成一个新的接口,在函数类型中使用这个接口,来大大减少类型规范方面的代码量。关于接口继承方面,请看另一篇【TS】接口和接口继承


案例源码:https://gitee.com/wang_fan_w/ts-seminar

如果觉得这篇文章对你有帮助,欢迎点亮一下star

标签:函数,number,接口,TS,add,类型,返回值
From: https://www.cnblogs.com/wang-fan-w/p/17073835.html

相关文章

  • 【TS】class类和接口
    class可以用来做数据的存储与回显,能将页面的数据分离出来并提取到class内,函数也可以抽离到class,实例化class进行调用。ts中的class类与js的class类基本相同,不同点在于ts的c......
  • 【TS】接口和接口继承
    接口接口也相当于语法规范,在使用ts编写的时候,需要注重的就是数据类型以及语法规范,恰好这里提供了一个接口,在进行传值的时候,传值的类型以及字段必须符合我们预期的类型规范......
  • 【TS】基础类型
    在ts中定义基础类型,语法:let变量名:数据类型=值//布尔类型----booleanletflag:boolean=trueflag=false在赋值的时候,不能赋值定义外的数据......
  • 【TS】数组和元组
    数组在ts中,定义数组类型语法:let变量名:数据类型[]=[值1,值2,值3]letarr1:number[]=[1,2,3,4]console.log(arr1);//输出[1,2,3,4]此外数字类型的定义还可......
  • Java后台如何接收与处理JSON类型数据
    项目开发中偶尔会使用到某个为JSON类型的字段,一个字段中又包含多个其他的字段。这种设计方式是根据实际需要来进行处理的,比如规则可能包含多条,每一条规则又包含多个......
  • 后台列表字段-回调函数-关联字段显示标题
    回调函数名称: xb_admin_guanlian回调函数代码(文件:config/custom.php): functionxb_admin_guanlian($value,$param=[],$data=[],$field=[]){......
  • JavaScript中实现sleep睡眠函数的几种简单方法(转)
    转自:JavaScript中实现sleep睡眠函数的几种简单方法一.什么是sleep函数?sleep是一种函数,他的作用是使程序暂停指定的时间,起到延时的效果。javascript好像诶呦提供sleep工......
  • 未能找到类型或命名空间名“XXX”(是否缺少 using 指令或程序集引用?)
    编译以前一个Console控制台程序的时候提示"未能找到类型或命名空间名“XXX”(是否缺少using指令或程序集引用?)".VS智能感知是通过的,但是编译的时候死活不通过,提示找不......
  • 【3】Python基础数据类型之字符串,切片,列表,元组,字典
    1.创建字符串  2.字符串输入输出,使用input()接收用户输入,使用print()输出。  3.字符串的索引下标4.切片:指对操作的对象截取其中一部分的操作。字符串、列表、元......
  • 炉石传说 酒馆战棋 积分保护机制Developer Insights: Hearthstone Battlegrounds Rati
    https://hearthstone.blizzard.com/en-us/news/23523064BlizzardEntertainment09/28/2020 Greetings!I’mTian,aLeadDataScientistontheHearthstoneteam......