当前位置: 首页 > Web前端 > HTML

【TS】函数与函数类型

时间:2023-03-28 17:00:50 HTML

在使用函数的时候,一般都是给函数传递一个值,或者调用函数返回一个值。这时候就会涉及到函数类型。函数类型分为两方面:1.函数参数2.函数返回值语法:function函数名(参数:参数类型):返回值类型{returnreturnvalue}函数有几种不同的写法,分别是:declare函数,匿名函数。声明函数:也称为函数声明和命名函数,下面是声明函数的方法:functionadd(x:number,y:number):number{returnx+y}console.log(add(1,2));//Print3函数add需要两个参数x和y,这两个参数的类型都是数字,而且这个函数必须有一个返回值,返回值是数字。add():numbernumber是指定类型的返回值。匿名函数:又称匿名函数、函数表达式,以表达式的形式呈现,写法与声明函数相同,括号内指定数据类型,括号外指定返回值类型。constadd2=function(x:number,y:number):number{returnx+y}console.log(add2(3,3));//print6函数add需要两个参数,x和y,而this两个参数都是number类型,而且这个函数必须有一个返回值,返回值为number。add():numbernumber是指定类型的返回值。没有返回值不是所有的函数都有返回值,函数可以没有返回值,如果没有返回值,或者返回值为空,函数后面的():():xxx可以换成void,void表示没有返回值也可以写成any,any可以返回任何类型。//noreturnvaluenoreturnvalueusevoidoranyconstemptyys=(params:number):void=>{console.log(params);}emptys(2)函数类型的完整写法constadd3:(x:数字,y:数字)=>数字=函数(x:数字,y:数字):数字{returnx+y}console.log(add3(10,10));//打印20步反汇编:1,add3:(x:number,y:number):number这里是指定的函数类型。此处定义后,函数传入的参数必须符合此处定义的规则。传递两个参数,类型为number,返回值为number。2.function(x:number,y:number):number{returnx+y}这里是传递给函数的参数和函数返回值的类型规范。这里的规范必须符合上面定义的规范,否则会报错。这种写法一般不用,比较麻烦,这里只是举个例子。函数类型在函数类型参数传递中使用接口。由于在参数传递中指定了数据类型,因此直接在函数体上读取更容易。看起来又复杂又长,所以你可以使用接口优化代码,使其更易于阅读。.//定义接口interfaceIPerson{username:stringage:number}constperson=(data:IPerson):string=>{return`name:${data.username},age:${data.age}`}inperson函数中,传入的值必须符合IPerson接口的规范,函数必须有返回值,返回值为字符串类型//参数letobj={username:'东方无敌',age:18}console.log(person(obj));//printname:DongfangBubai,age:18另外接口可以继承,也就是说可以将多个接口组装成一个新的接口,在函数类型中使用这个接口可以大大减少量在类型规范方面的代码。关于接口继承,请看另一篇【TS】接口和接口继承。案例源码:https://gitee.com/wang_fan_w/ts-seminar如果您觉得本文对您有帮助,请点亮star