TypeScript:这些有关函数的规约和应用,你都掌握了没?
本文以代码示例为主,以便让你更高效快捷地理解和掌握TypeScript编程中函数的相关参数要求、应用类型和相应拓展。
我们主要介绍函数的常规化参数、函数式参数、联合类型参数以及函数的类型等。详见下文。若需系统的学习TypeScript编程,请到这里:
可选参数
在TypeScript中,每个参数都被认为是函数所必需的。你可以在参数名称的末尾加一个?将其设置为可选的(即调用是可传参或无参)。
例如下面函数中的lastName参数为可选的:
需要注意,可选参数必须在所有非可选参数之后,如下函数定义,将会提示错误:
默认参数
如果用户传递undefined或未指定参数,则会赋予默认值。这些参数称为默认初始化参数。例如下面,用“Cui”作为默认参数值传给函数使用。
假设我们想要接收一个函数作为参数,我们可以这样做:
如果想接收构造函数作为形参,可按照如下形式实现:
在VS Code中,传递构造器参数时,默认情况下会有错误提示。类似
Construct signature, which lacks return-type annotation, implicitly has an 'any' return type 。
此时可修改tsconfig.json配置解决 :"noImplicitAny": false,
或者,为了便于阅读,我们可以定义一个构造函数的描述接口:
或者带有构造参数的形式:
甚至可以带有泛型参数:
如果我们想接收一个简单的函数而不是一个构造函数,这几乎一样操作:
或者为了便于阅读,我们可以定义一个描述函数的接口:
或带参数的函数:
甚至是泛型参数:
TypeScript函数可以使用联合类型接受多个预定义类型的参数。代码示例如下:
TypeScript将这些参数视为其他类型的联合的单一类型(union),所以你的函数必须能够处理联合中的任何类型的参数。示例如下:
有三种函数类型,示例如下:
这里注意参数和返回类型的相应标注形式。若需系统的学习TypeScript编程,请到专栏一探究竟。