接受通用参数并返回通用值的函数

时间:2019-02-14 16:58:07

标签: javascript arrays typescript

我有一个功能:

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

但是arrayfunction参数可以是任意,但是数组必须为typeof数组,而函数必须为typeof函数< / strong>。

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

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

例如 我在我的应用中的某处调用它:

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

谢谢!

2 个答案:

答案 0 :(得分:1)

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

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

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

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

答案 1 :(得分:0)

尝试一下:

const r = <T>(array: T[], fn: (argument: T) => T) => { /* ... */}