TypeScript:函数接口以及回调函数的应用

时间:2021-08-24 16:16:06

在TypeScript,interface可以用来定义函数的结构。

基本语法

interface InterfaceName {
  (param1: parameterType1,param2:parameterType2... ): returnType;
}

示例

interface  Formatter{
	(input: string): string;
}

Formatter定义了一个string类型的参数input,返回值为string类型。

使用

let upperCaseFormatter: Formatter = function(input: string): string {
  return input.toUpperCase();
}

let lowerCaseFormatter: Formatter = function(input: string): string {
  return input.toLowerCase();
}

因为Formatter已经定义了函数的结构,所以可以忽略参数的类型以及返回值的类型,参数名也可以和接口定义的不同。

let upperCaseFormatter: Formatter = function(i){
  return i.toUpperCase();
}

let lowerCaseFormatter: Formatter = function(i){
  return i.toLowerCase();
}

应用场景: 回调函数

在JavaScript里常常用到回调函数,我们可以使用TypeScript的函数接口来增强回调函数的类型检查。

interface Callback {
   (name: string): void;
}

function myfunc(name:string, callback: Callback) {
	callback(name);
}