TypeScript系列学习笔记-函数(方法)function

函数简介:函数是JS应用程序的基础。 它帮助你实现抽象层,模拟类,信息隐藏和模块。 在TS里,虽然已经支持类,命名空间和模块,但函数仍然是主要的定义 行为的地方。 TS为JS函数添加了额外的功能,让我们可以更容易地使用。

函数分类:和JS一样,TS函数可以创建命名函数和匿名函数;语法:声明关键字,function

简单回顾,JS中函数的定义:

上述函数定义在TS中怎么实现呢,其实一样的,在TS中添加了类型定义(TS本质是JS,上述代码在TS中也是完全可以的):


function 在JS中也属于数据类型,TS中同样,再次将上述代码在TS中实现完整形式:


在TS中完整定义函数类型let 声明变量 add3(委托和 C#中委托类似) ,通过符号"=>"标识函数返回类型,同样add3会根据后面的值推断类型,需要接收一个函数(此处匿名函数)类型。

关于推断类型,可将上述代码再次简化,实例如下:


当符号"="左边声明变量add4时,指明了参数数据类型和函数返回值类型,而符号"="右边的函数类型没有指明,TS编译器会自动识别出类型。

注:TS中完整函数定义,包含两部分:参数类型和返回值类型当写出完整函数类型的时候,这两部分都是需要的。当函数无返回值时,也必须指定返回值类型为 void而不能留空。实例代码如下:


添加默认值,在声明函数的形参中赋值:

//添加默认值
let sayHi2 = function (n:string ="hello") {
    return n+",欢迎来到TypeScript的世界!";
}
alert(sayHi2()); //使用默认值hello
alert(sayHi2("张三")); //为形参n赋值张三

可选参数使用符号"?:"标识:

//添加可选参数(带默认值)
let sayHi3: (name?: string) => string = function (n="hello") {
    return n+",欢迎来到TypeScript的世界!";
}
alert(sayHi3()); //行参name可选
alert(sayHi3("李四"));//为形参name赋值李四

可变参数组,使用符号"...变量名:Array<数据类型>":


或者使用符号"...变量名:数组":

function buildName(firstName: string, ...restOfName: string[]) {
  return firstName + " " + restOfName.join(" ");
}
//调用
let employeeName = buildName("Joseph", "Samuel", "Lucas", "MacKinzie");

总结:

1.方法是JS中的一个特殊的对象;

2.方法分为命名方法和匿名方法;

3.方法属于数据类型;

4.方法参数(形参)可以定义默认值;

5.方法参数(行参)可以使用符号"?:"去定义可选参数或可选参数组;

6.方法参数(形参)可以使用符号"..."去定义可变参数组;

猜你喜欢

转载自blog.csdn.net/chaitsimplelove/article/details/79841165