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

在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);
}

版权声明:著作权归作者所有。

相关推荐

Kotlin传递函数作为参数的方式

Kotlin传递函数作为参数,可以有:命名参数,位置参数以及在参数列表外,以lamba的形式传递。示例data class Person(val name: String,                &nb

理解JavaScript普通函数以及箭头函数里使用的this

this普通函数的this普通函数的this是由动态作用域决定,它总指向于它的直接调用者。具体可以分为以下四项:this总是指向它的直接调用者, 例如 obj.func() ,那么func()里的this指的是obj。在默认情况(非严格模式,未使用 'use strict'),如果函数没有直接调用者,this为window在严格模式下,如果函数没有

Kotlin集合扩展函数 - 转换

Kotlin 集合类型提供了很多用于转换的扩展函数。这里需要指出示例里的intList为val intList: List<I­nt> = listOf(1, 2, 3) associate关联函数:使用转换函数把Array或Iterable转换为Map:数组fun <T, K, V> any_array

Kotlin集合扩展函数 - 创建集合

Kotlin标准包提供了一系列的扩展函数用来创建集合,包括Array,List,Set,Map以及可变集合。这里需要指出示例里的intList为val intList: List<I­nt> = listOf(1, 2, 3) Array创建数组基本方式val intArray: Array<­Int

TypeScript:接口(interface)属性的定义

  在TypeScript里,接口扮演了一个定义数据结构的角色,它在TypeScript的类型检查中起到很重要的作用。基本用法匿名定义sayHello(person: {name:string}) { console.log(person.name + ", 您好!"); } 这是一个很简单的例子,它使用匿

JavaScript Array map()函数的用法及误用

Array的map()函数作用是一个数组映射为另一个数组,映射方式是以原数组的元素作为输入,使用提供的回调函数对输入元素处理,处理后返回的结果作为新数组的元素。基本语法var new_array = arr.map(function callback(currentValue, index, array) {  &nb