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的參數傳入(從第二個參數開始)。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM