函数
函数
在TypeScript中,函数是一段可以被重复调用的代码块。函数可以接受参数,执行一些操作,然后返回一个值。函数可以被定义为具有特定的参数和返回值类型,这样可以在编译时进行类型检查。
函数的定义
函数可以使用function
关键字来定义。函数的定义包括函数名、参数列表和函数体。函数名用于标识函数,参数列表用于指定函数所接受的参数,函数体包含了实际的代码。函数的返回值类型可以使用冒号指定。
例如:
function add(a: number, b: number): number {
return a + b;
}
这个函数的名称是add
,它接受两个参数a
和b
,类型都是number
,返回值类型也是number
。函数体中的代码是将两个参数相加并返回结果。
函数的调用
函数的调用就是在代码中使用函数名来执行函数。调用函数时,需要传入与函数定义中所指定的参数类型和数量相匹配的参数。当函数被调用时,函数体中的代码会被执行,然后函数会返回一个值。
例如:
let result: number = add(2, 3); // 调用add函数并传入参数2和3
console.log(result); // 输出5
可选参数和默认参数
在TypeScript中,函数可以定义可选参数和默认参数。
可选参数
可选参数可以在函数定义时使用问号?
来标记。可选参数可以出现在参数列表的末尾,但不能出现在必须参数的前面。
例如:
function sayHello(name?: string) {
if (name) {
console.log("Hello, " + name + "!");
} else {
console.log("Hello, world!");
}
}
sayHello(); // 输出"Hello, world!"
sayHello("John"); // 输出"Hello, John!"
在这个例子中,name
参数被标记为可选参数,因此可以在调用函数时不传入参数。当不传入参数时,函数会输出默认的问候语;当传入参数时,函数会输出带有参数的问候语。
默认参数
默认参数可以在函数定义时使用赋值符=
来标记。默认参数与可选参数类似,但其在函数调用时可以省略。如果省略了默认参数,则会使用默认值。
例如:
function sayHello(name: string = "world") {
console.log("Hello, " + name + "!");
}
sayHello(); // 输出"Hello, world!"
sayHello("John"); // 输出"Hello, John!"
在这个例子中,name
参数被标记为默认参数,并被指定为"world"
。当不传入参数时,函数会输出默认的问候语;当传入参数时,函数会输出带有参数的问候语。
剩余参数
在TypeScript中,函数可以使用剩余参数语法来接受不定数量的参数。剩余参数是一个数组,其中包含了所有传入的额外参数。
例如:
function sum(...numbers: number[]): number {
let result: number = 0;
for (let num of numbers) {
result += num;
}
return result;
}
console.log(sum(1, 2, 3, 4, 5)); // 输出15
在这个例子中,sum
函数使用剩余参数语法来接受不定数量的参数。函数体中的代码会遍历所有传入的参数,并将它们相加。最后函数会返回总和。
函数重载
在TypeScript中,函数重载允许我们定义多个函数签名,以便针对不同的参数类型和数量进行不同的操作。当调用函数时,TypeScript会根据参数类型和数量来选择正确的函数实现。
例如:
function add(x: number, y: number): number;
function add(x: string, y: string): string;
function add(x: any, y:any): any {
if (typeof x === "number" && typeof y === "number") {
return x + y;
} else {
return x.toString() + y.toString();
}
}
console.log(add(2, 3)); // 输出5
console.log(add("Hello, ", "world!")); // 输出"Hello, world!"
在这个例子中,我们定义了两个函数签名,一个接受两个number
类型的参数并返回number
类型的结果,另一个接受两个string
类型的参数并返回string
类型的结果。当调用add
函数时,TypeScript会根据传入的参数类型和数量来自动选择正确的函数实现。