这是ramda.js中defaultTo
函数的打字稿定义
defaultTo<T, U>(a: T, b: U | null | undefined): T | U;
defaultTo<T>(a: T): <U>(b: U | null | undefined) => T | U;
这是我具有此功能的代码
// validateIp :: string -> boolean
const getIpAndValidateIt: (o: any) => boolean = compose(
validateIp,
<(str: string) => string> defaultTo<string>(''),
prop<string, string>('ip')
);
validateIp
接受一个string
,这意味着defaultTo应该是一个接受string
并返回一个string
的函数。
在我的情况下,defaultTo必须是一个咖喱函数(必须返回一个函数),因此第一个定义不相关。然后:
defaultTo<T>(a: T): <U>(b: U | null | undefined) => T | U;
此定义在返回类型中有一个<U>
泛型,并且可以在我的代码中定义U
(就像我定义了T
一样)。
我尝试了类似defaultTo<string>(..)<string>
的方法,但没有成功
您能告诉我在哪里定义<U>
吗?