typescript - 条件可选参数类型

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

我添加 时出现的问题? 它使其成为永久可选,没有它则成为必需。

最佳答案

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

关于typescript - 条件可选参数类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59002038/

相关文章:

javascript - 如何在 typescript 中描述简单的 Just 仿函数的接口(interface)?

typescript - 在 Typescript 中索引其他属性的属性

javascript - 突然丢失 Visual Studio Typescript Intellisense

TypeScript:从其他字符串文字联合类型限制区分联合中的鉴别器

angular - 在带有模板的 Angular ng-bootstrap 模式中,关闭和关闭按钮不起作用

javascript - chess.js 的 Typescript 声明文件

typescript:自动为构造函数的所有命名参数创建 getter

typescript - 定义一个基于递归泛型接口(interface)的 TypeScript 类

javascript - Sinon:如何创建解析多个调用的 stub

Angular DI : Injecting a value token into factory provider