# TyepScript 函数

函数定义:

function add(a: number, b: number) :number {
    return a + b
}

可选参数:

function add(a: number, b: number, c?: number) :number {
    // c 可选
    return c ? a+b+c : a+b
}

console.log(add(1, 2))          // 3
console.log(add(1, 2, 3))       // 6

参数默认值:

function add(
    a: number, 
    b: number, 
    c?: number,
    d: number=0) :number {
      
 	return c ? a+b+c+d : a+b+d
}

console.log(add(1, 2))          // 3
console.log(add(1, 2, 3))       // 6
console.log(add(1, 2, 3, 4))    // 10

变长参数:

function add(
    a: number, 
    b: number, 
    c?: number,
    d: number=0,
    ...e: number[]) :number {
      
    let result = c ? a + b + c + d : a + b + d
    for(let i=0; i<e.length; i++){
        result += e[i]
    }
    return result
}

console.log(add(1, 2))          // 3
console.log(add(1, 2, 3))       // 6
console.log(add(1, 2, 3, 4))    // 10
console.log(add(1, 2, 3, 4, 5, 6, 7))   // 28
const numbers = [5, 6, 7]
console.log(add(1, 2, 3, 4, ...numbers)) // 28

对象类型参数:

function sendRequest(params: {
    url: string,
    method: 'GET' | 'POST' | 'PUT',
    header: object,
    data?: string,
    requireAuth: boolean,
    retry: boolean,
    retryTimeout: number
    }) {

    console.log(params)

}

sendRequest({
    url: 'https://www.hedon.com',
    method: 'POST',
    header: {
        contentType: 'appplication/json',
    },
    data: 'hello world',
    requireAuth: true,
    retry: true,
    retryTimeout: 30000
})
上次更新: 11/3/2021, 8:49:20 AM