首页 > 解决方案 > 接受泛型参数并返回泛型值的函数

问题描述

我有一个功能:

const r = (array, function) => { some stuff }

然而arrayfunctionarguments 可以是任何东西,但是 array必须是 typeof array并且 function必须是 typeof function

但是,array可以是任何东西的数组 - any[]anffunction可以是任何东西function(...r: any): any

如何键入该r函数以接受泛型arrayfunction参数,但在调用它时必须传递类型定义?

例如,我在我的应用程序的某个地方调用它:

r([1,2,3], (r) => r + 2)

谢谢!

标签: javascriptarraystypescript

解决方案


这是我对您正在寻找的内容的解释

type Fn<T> = (arg: T) => T
type R = <T>(array: T[], fn: Fn<T>) => T

const r: R = (array, fn) => { 
    //some stuff
}

我更喜欢拆分类型声明及其用法。


推荐阅读