TypeScript函数类型字面量

酷客教程前面介绍了如何为现有函数添加参数和返回值类型。本文为朋友们介绍如何使用函数类型字面量来描述某个函数的类型。

函数类型字面量是定义函数类型的方法之一,它能够指定函数的参数类型、返回值类型以及泛型类型参数。函数类型字面量的语法与箭头函数的语法相似,具体语法如下所示:

(ParameterList) => Type
  • ParameterList表示可选的函数形式参数列表;
  • Type表示函数返回值类型;
  • 形式参数列表与返回值类型之间使用胖箭头“=>”连接。

下例中,变量f的类型为函数类型,这代表变量f的值是一个函数。该函数类型通过函数类型字面量进行定义,表示一个不接受任何参数且返回值类型为void的函数。示例如下:

let f: () => void;
//     ~~~~~~~~~~
//     函数类型字面量

f = function () { /* no-op */ };

在函数类型字面量中定义函数参数的类型时,必须包含形式参数名,不允许只声明参数的类型。下例中,add函数是正确的定义方式,而f函数则是错误的定义方式。编译器会将f函数参数列表中的number当作参数名,而不是参数类型。示例如下:

let add: (x: number, y: number) => number;

let f: (number) => number;
//      ~~~~~~
//      编译错误

函数类型字面量中的形式参数名与实际函数值中的形式参数名不必相同。例如,下例中函数类型字面量中声明的形式参数名为x,而实际函数值的形式参数名为y

let f: (x: number) => number;

f = function (y: number): number {
   return y;
};

函数类型字面量中的返回值类型必须明确指定,不允许省略。如果函数没有返回值,则需要指定void类型作为返回值类型。示例如下:

let foo: () => void;

let bar: () => ;
//             ~~
//             编译错误:未指定返回值类型

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!