摘要:在本教程中,您将学习 TypeScript 函数以及如何使用类型注解来强制执行函数的类型检查。
TypeScript 函数简介
TypeScript 函数是可读、可维护和可重用代码的构建块。
与 JavaScript 一样,您使用function
关键字在 TypeScript 中声明函数
function name(parameter: type, parameter:type,...): returnType {
// do something
}
Code language: JavaScript (javascript)
与 JavaScript 不同,TypeScript 允许您在函数的参数和返回值中使用类型注解。
让我们看看以下add()
函数示例
function add(a: number, b: number): number {
return a + b;
}
Code language: TypeScript (typescript)
在这个例子中,add()
函数接受两个参数,类型为number
。
当您调用add()
函数时,TypeScript 编译器会检查传递给函数的每个参数,以确保它们都是数字。
在add()
函数示例中,您只能向其中传递数字,不能传递其他类型的数值。
以下代码将导致错误,因为它向add()
函数传递了两个字符串而不是两个数字
let sum = add('10', '20');
Code language: JavaScript (javascript)
错误
error TS2345: Argument of type '"10"' is not assignable to parameter of type 'number'
Code language: JavaScript (javascript)
函数参数的类型在函数体中也可用以进行类型检查。
括号后的: number
表示返回类型。在本例中,add()
函数返回number
类型的数值。
当函数具有返回类型时,TypeScript 编译器会针对每个return
语句检查返回类型,以确保返回值与其兼容。
如果函数不返回值,您可以使用void
类型作为返回类型。void
关键字表示函数不返回任何值。例如
function echo(message: string): void {
console.log(message.toUpperCase());
}
Code language: TypeScript (typescript)
void
阻止函数内部的代码返回值,并阻止调用代码将函数的结果分配给变量。
当您不注释返回类型时,TypeScript 会尝试推断合适的类型。例如
function add(a: number, b: number) {
return a + b;
}
Code language: TypeScript (typescript)
在这个例子中,TypeScript 编译器尝试将add()
函数的返回类型推断为number
类型,这是预期的。
但是,如果函数具有返回不同类型的不同分支,则 TypeScript 编译器可能会推断联合
类型或any
类型。
因此,尽可能地为函数添加类型注解非常重要。
总结
- 使用类型注解为函数参数和返回类型,以保持调用代码的一致性并确保函数体内的类型检查。