![](/img/trans.png)
[英]How to define a lambda function with a return type that can be used later with a generic
[英]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
}
编译器可以在这里推断string
和number
而不让我做类似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.