我有一个功能:
const r = (array, function) => { some stuff }
但是array
和function
参数可以是任意,但是数组必须为typeof数组,而函数必须为typeof函数< / strong>。
但是,array
可以是任何数组-any[]
和function
可以是任何function(...r: any): any
。
如何键入r
函数以接受通用的array
和function
参数,但是在调用它时必须传递类型定义?
例如 我在我的应用中的某处调用它:
r([1,2,3], (r) => r + 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) => { /* ... */}