跳到主要内容

TypeScript Functions

摘要:在本教程中,你将了解 TypeScript 函数以及如何使用类型注释来为函数开启强制的类型检查。

TypeScript 函数简介

TypeScript 函数是可读、可维护和可重用的代码块。

与 JavaScript 一样,可以使用 function 关键字在 TypeScript 中声明函数:

function name(parameter: type, parameter:type,...): returnType {
// do something
}

与 JavaScript 不同,TypeScript 允许你在函数的参数和返回值中使用类型注释。

让我们看看下面的 add() 函数示例:

function add(a: number, b: number): number {
return a + b;
}

在此示例中,add() 函数接受两个 number 类型的参数。

当你调用 add() 函数时,TypeScript 编译器将检查传递给该函数的每个参数,以确保它们是数字。

add() 函数示例中,只能向其中传递数字,而不能传递其他类型的值。

以下代码将导致错误,因为它将两个字符串而不是两个数字传递到 add() 函数中:

let sum = add('10', '20');

错误:

error TS2345: Argument of type '"10"' is not assignable to parameter of type 'number'

函数参数的类型也可以在函数体内进行类型检查。

括号后面的 :number 表示返回值得类型。 在本例中,add() 函数返回 number 类型的值。

当函数具有返回类型时,TypeScript 编译器会根据返回类型检查每个 return 语句,以确保返回值与其兼容。

如果函数没有返回值,则可以使用 void 类型作为返回类型。 void 关键字表示该函数不返回任何值。 例如:

function echo(message: string): void {
console.log(message.toUpperCase());
}

void 阻止函数内部的代码返回值,并阻止调用代码将函数的结果分配给变量。

当你不注释返回类型时,TypeScript 将尝试推断适当的类型。 例如:

function add(a: number, b: number) {
return a + b;
}

在此示例中,TypeScript 编译器尝试将 add() 函数的返回类型推断为 number 类型,这是符合预期的。

但是,如果函数具有返回不同类型的不同分支,则 TypeScript 编译器可能会推断出 union 类型或 any 类型。

因此,尽可能为函数添加类型注释非常重要。

概括

  • 对函数参数和返回类型使用类型注释,以保持调用代码内联并确保函数体内的类型检查。