【发布时间】:2018-09-07 11:12:58
【问题描述】:
给定一个参数的柯里化函数接口
interface CurriedFunction1<T1, R> {
(): CurriedFunction1<T1, R>
(t1: T1): R
}
如何声明该类型的泛型函数?
以下声明无效:
declare let myFunction: CurriedFunction1<T[], string> // Cannot find name 'T'.
declare let myFunction2:<T>CurriedFunction1<T[], string> // '( expected.
【问题讨论】:
-
"declare generic function" --- 你的值不应该是特定类型的吗?您应该实例化具有特定类型的泛型类型。例如
declare let myFunction: CurriedFunction1<string[], string> -
好吧,这行得通:
declare function a<T>(): T;declare const b: <T>() => T;。所以我可以使用泛型函数声明来声明函数,但是如果我不能使用(..)的泛型接口定义函数?
标签: typescript generics currying