• TypeScript的函数(方法)


    TypeScript的函数(方法)

    一、函数的定义

       1、声明式

    function getInfo(name: string, age: number) : string {

        return `I am ${name} and I am ${age} years old`

    }

    ts在传参时都会规定参数的类型,还有它返回值的类型也会在函数执行之前都已经规定好,如果传参的类型和返回值的类型不符合,ts编译会报错。

    2、匿名函数

    const getInfo = function(name: string, age: number):string {

        return `I am ${name} and I am ${age} years old`

    }

    二、函数中的参数

        1、默认参数(传入值会覆盖默认参数,不传值也行)

    function getinfo(name:string,age:number=20):string{

        return `${name}---${age}`

    }

    console.log(getinfo("张三"));//打印出:张三 20

    console.log(getinfo("张三",30));//打印出:张三 30

         2、可选参数(可以传可选的值也可以不用传,但是可选的参数必须放在参数列表的最后

    function getinfo1(name:string,age?:number):string{

        if(age){

            return `${name}---${age}`  

        }else{

            return `${name}---年龄保密`

        }

    }

    console.log(getinfo1("张三"));//打印出:张三 年龄保密

    console.log(getinfo1("张三",30));//打印出:张三 30

          3、剩余参数:利用es6的三点运算符(相当于把参数赋值给一个数组,然后用循环遍历这个数组

    function sum1(...result:number[]):number{

        var sum=0;

        for(let i=0;i<result.length;i++){

            sum+=result[i];

        }

        return sum;

    }

    console.log(sum1(1,2,3,4,5));//15

    console.log(sum1(1,2,3,4,5,6));//21

        或者(把传进来的第一个参数赋值给a,后面的放进数组

    function sum1(a:number,...result:number[]):number{

        var sum=a;

        for(let i=0;i<result.length;i++){

            sum+=result[i];

        }

        return sum;

    }

    console.log(sum1(1,2,3,4,5));//15

    console.log(sum1(1,2,3,4,5,6));//21

    三、函数的返回值

    1、没有返回值的函数

    function getInfo(name:string, age:number):void{

        console.log(`hello${name}`)

    }

    当函数不需要return返回数据时,这个函数的返回类型就为void(空)

    2、推断类型(ts自动识别类型(按上下文归类))

    function add(x: number, y: number) {

        return x + y

    }

    ts会自动识别出返回类型为number

    四、函数的调用

        ts的函数调用和普通的函数没有区别,可以在函数名后面加括号调用,也可以用call,apply,bind来调用

    1、call() 和 apply() 是预定义的函数方法。 两个方法可用于调用函数,两个方法的第一个参数必须是对象本身。

    function myFunction(a, b) {

        return a * b;

    }

     let obj = myFunction.call(obj, 10, 2);     // 返回 20

     console.log(obj)

     

    function myFunction(a, b) {

        return a * b;

    }

    myArray = [10, 2];

    myObject = myFunction.apply(myObject, myArray);  // 返回 20

    两个方法都使用了对象本身作为第一个参数。 两者的区别在于第二个参数: apply传入的是一个参数数组,也就是将多个参数组合成为一个数组传入,而call则作为call的参数传入(从第二个参数开始)。

     

  • 相关阅读:
    pat每日刷题计划--day70
    pat每日刷题计划--day69
    pat每日刷题计划--day68
    pat每日刷题计划--day67
    pat每日刷题计划--day66
    SpringBoot+MyBatis+MySQL读写分离
    SpringMVC源码分析
    ActiveMQ从入门到精通(三)
    ActiveMQ从入门到精通(二)
    ActiveMQ从入门到精通(一)
  • 原文地址:https://www.cnblogs.com/lone5wolf/p/15834981.html
Copyright © 2020-2023  润新知