node.ts function

// 命名函数,函数名称add
function add(x, y) {
    return x + y;
}

// 匿名函数,赋值给myAdd变量
let myAdd = function(x, y) { return x + y; };

// 为上面函数参数和返回值添加类型
function add(x: number, y: number): number {
	return x + y;
}
// 赋值语句左边没有类型,右边函数有参数和返回值类型,编译器会自动推断为下面的完整函数类型
let myAdd = function(x: number, y: number): number { return x+y}

// 书写完整的函数类型,需要参数和返回值都有类型,没有返回值则必须是void,不能留空
let myAdd: (x: number, y: number) = function(x: number, y: number)=>number {
	return x + y;
}
// 上面的=>表示显示指定函数的返回类型,只要参数类型是匹配的,那么就认为它是有效的函数类型,而不在乎参数名是否正确。
let myAdd: (basex: number, basey: number) = function(x: number, y: number)=>number {
	return x + y;
}


// 函数可选参数,只需要在参数从右到左变量后面加?就可以(若想firstName可选,需要firstName在后,并加?)
function buildName(firstName: string, lastName?: string) {
    if (lastName)
        return firstName + " " + lastName;
    else
        return firstName;
}

let result1 = buildName("Bob");  // works correctly now
let result2 = buildName("Bob", "Adams", "Sr.");  // error, too many parameters
let result3 = buildName("Bob", "Adams");  // ah, just right

// 也可以为函数参数传递默认值,当实参为undefined时,就使用函数的默认值
function buildName(firstName: string, lastName = "zhang") {
    if (lastName)
        return firstName + " " + lastName;
    else
        return firstName;
}
let result = buildName(“san”, undefined);

// 若第一个参数有默认值的话
function buildName(firstName: "san", lastName: string) {
    if (lastName)
        return firstName + " " + lastName;
    else
        return firstName;
}
let result = buildName(undefined, "zhang");


// 当函数参数有多个参数,但具体不知道有多少个可以使用,可以把所有参数收集到一个变量里,剩余参数会被当做个数不限的可选参数,名字是你在省略号(...)后面给定的名字...varName: string[]
function buildName(firstName: string, ...restOfName: string[]) {
  return firstName + " " + restOfName.join(" ");
}

let employeeName = buildName("Joseph", "Samuel", "Lucas", "MacKinzie");

// 使用Function(arg1[,arg2, argn], body)关键字进行构造函数
let fun = new Function("arg1", "arg2", "console.log(arg1+arg2)");
fun("hello", " world");
// 匿名函数,可以赋值给变量,由变量进行调用
let fun = function (arg:any){
	...
}
fun("test");
// lambda函数(箭头函数),(arg)=>{statement}
// 有参
let func = (arg) =>{
    console.log(arg);
}
func("hello")
// 一个参数时,括号是可选的
func=arg=>{
    console.log(arg);
}
func("world")
// 没有参数时,需要空括号
let func1=()=>{
    console.log("nothing");
}
func1();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值