返回类型的泛型

时间:2018-07-09 06:47:45

标签: typescript ramda.js

这是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>吗?

0 个答案:

没有答案