# 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
})