[英]I am not able to understand how generics are used in this code in nodejs module http.d.ts
type RequestListener<
Request extends **typeof IncomingMessage = typeof IncomingMessage**,
Response extends **typeof ServerResponse = typeof ServerResponse**,
> = (req: InstanceType<Request>, res: InstanceType<Response> & { req: InstanceType<Request> }) => void;
这里的粗体部分是什么意思
我想试试 hit and try 方法看看它是什么意思。 但我不知道如何以及在这里检查什么。 我认为该请求扩展了 IncomingMessage 类型,但不知道这怎么可能。
如果你有一个像IncomingMessage
的 class ,则typeof IncomingMessage
是该 class 的构造函数 function的类型(而IncomingMessage
是类实例的类型)。 因此,该代码表示Request
是一个构造函数 function,它扩展了IncomingMessage
构造函数 function。(对于Response
也是如此。)
= ____
部分说明了如果没有明确提供类型参数的默认值。 所以如果你做了listener: RequestListener;
,类型参数将采用它们的默认值( typeof IncomingMessage
和typeof ServerResponse
),但如果您使用listener: RequestListener<X, Y>
,则类型参数将采用值X
和Y
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.