文章目录
1. 基础格式
function add(num1: number, num2: number){
return num1 + num2;
}
let sum = add(1, 2); // sum = 3
2. 可选参数(参数名后加 ?)
function add(num1: number, num2: number, num3?: number){
if(num3)
return num1 + num2 + num3;
else
return num1 + num2;
}
let sum1 = add(1, 2); // sum = 3
let sum2 = add(1, 2, 3); // sum = 6
3.默认参数(param[:type] = default_value)
参数不能同时设置为可选和默认
function multi(num1: number, num2: number = 1){
return num1 * num2;
}
let result1 = multi(10); // result1 = 10
let result2 = multi(10, 10); // result2 = 100
4.可变参数(…param[:type])
// 可变参数函数
function func01(...nums: number[]){
let sum: number = 0;
for(let i = 0; i < nums.length; i++){
sum += nums[i];
}
return sum;
}
let sum1 = func01(1, 2, 3); // sum1 = 6
let sum2 = func01(1, 2, 3, 4, 5); // sum2 = 15
5.匿名函数
// 不带参数
var msg = function() {
return "hello world";
}
console.log(msg())
// 带参数
var res = function(a:number,b:number) {
return a*b;
};
console.log(res(12,2)) // 24
// 匿名函数自调用
(function () {
var x = "Hello!!";
console.log(x)
})()
6.Lambda 函数
- ( [param1, param2,…param n] )=>statement;
- 我们可以不指定函数的参数类型,通过函数内来推断参数类型
- 单个参数 () 是可选的
// Lambda
let func = x => {
if(typeof x == "number")
console.log(x + " 是一个数字")
else if(typeof x == "string")
console.log(x + " 是一个字符串")
}
func(12) // 12 是一个数字
func("Tom") // Tom 是一个字符串