Skip to content

函数

  • 函数是一组一起执行一个任务的语句。

函数的定义

typescript
function functionName(parameter1: type1, parameter2: type2): returnType {
	// 函数体
	return value;
}

参数

固定参数

  • 调用函数时必须传递的参数,参数的数量和类型必须与定义时的参数一致。
typescript
function functionName(parameter1: type1, parameter2: type2): returnType {
	// 函数体
	return value;
}

可选参数

  • 调用函数时可以不传递的参数,参数的数量和类型可以与定义时的参数不一致。
  • ?表示这个参数是可选参数
typescript
function functionName(parameter1: type1, parameter2?: type2): returnType {
	// 函数体
	return value;
}

剩余参数

  • 调用函数时可以传递任意数量的参数,参数的数量和类型可以与定义时的参数不一致。
  • ...表示这个参数是剩余参数,它会将所有传递的参数收集到一个数组中。
typescript
function functionName(parameter1: type1, ...parameter2: type2[]): returnType {
	console.log(parameter2);
	// 函数体
	return value;
}

匿名函数

  • 没有名称的函数,通常用于作为其他函数的参数或返回值。
  • function关键字定义,后面跟着参数列表和函数体。
typescript
const functionName = function (parameter1: type1, parameter2: type2): returnType {
	// 函数体
	return value;
};

箭头函数

  • 没有名称的函数,通常用于作为其他函数的参数或返回值。
  • 用箭头函数的语法定义,参数列表和函数体之间用=>连接。
  • 箭头函数没有自己的this,它的this值继承自外围作用域。
  • 箭头函数没有自己的arguments对象,但是可以使用...表示剩余参数。
typescript
const fun1 = (a: number, b: number) => {
	return a + b;
};

lambda 函数

  • Lambda 函数也称之为箭头函数。
  • 比箭头函数更简洁,当函数体只有一行代码时可以省略{}return关键字。
typescript
const fool = (x: number) => 10 + x;

函数重载

  • 重载是方法名字相同,而参数不同,返回类型可以相同也可以不同。
typescript
// 参数类型不同:
function functionName(string): void;
function functionName(number): void;

// 参数数量不同:
function functionName(n1: number): void;
function functionName(x: number, y: number): void;

// 参数类型顺序不同
function functionName(x: number, y: number): void;
function functionName(y: number, x: number): void;