繁体   English   中英

我可以定义一个具有“可覆盖”返回类型的泛型函数吗?

[英]Can I define a generic function with “overridable” return types?

我想要这样的东西:

type httpRequestHandler = <Payload>(request: RequestData) => Payload

const httpRouteA: httpRequestHandler = (request) => {
    return 'Test'
}

const httpRouteB: httpRequestHandler = (request) => {
    return 13
}

编译器可以在这里推断stringnumber而不让我做类似httpRequestHandler<string>httpRequestHandler<number>吗?

type PayloadA = ReturnType<typeof httpEndpointA> // string
type PayloadB = ReturnType<typeof httpEndpointB> // number

我设法让它像这样工作:

const httpRouteA = (request: RequestData) => {
    return 'Test'
}

type PayloadA = ReturnType<typeof httpEndpointA> // string.

const httpRouteB = (request: RequestData) => {
    return 13
}

type PayloadB = ReturnType<typeof httpEndpointB> // number.

这是一种权衡,因为我每次都必须键入函数参数,但编译器在这里正确推断了返回类型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM