首页 > 解决方案 > 条件可选参数类型

问题描述

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

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)()

我添加?它时的问题是它永久可选,没有它是必需的。

标签: typescripttypescript-typingstypescript-generics

解决方案


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)()

推荐阅读