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
类型。
因此,尽可能为函数添加类型注释非常重要。
概括
- 对函数参数和返回类型使用类型注释,以保持调用代码内联并确保函数体内的类型检查。