条件可选参数类型

时间:2019-11-22 21:34:23

标签: typescript typescript-typings typescript-generics

目前,我有一个演示条件参数的示例,传入的第二个参数的值将取决于第一个参数的类型。

type Check<G, T> = T extends number ? string : number

function Example<T>(arg: T) { 
    return function <P>(arg: Check<P, T>) { 

    }
}

// Valid:

Example('hello')(1)
Example(1)('hello')

如何更改上面的代码以使此示例正常工作?

Example()(1)
Example(1)()

当我添加?时,该问题使其成为永久可选的,而无需它。

1 个答案:

答案 0 :(得分:2)

void可以解决问题!

type Check<G, T> = T extends number ? void : number

function Example<T>(arg?: T) { 
    return function <P>(arg: Check<P, T>) { 

    }
}

Example()(1)
Example(1)()