打字稿构造函数新对象

typescript constructor new object

构造函数中第二个参数是什么意思:

(来自这个example

constructor(private url: string, private WebSocketCtor: { new(url:string): WebSocket } = WebSocket) {}

尤其是最后的= WebSocket部分。为什么我需要这个?在上面的示例中,它是这样调用的:

bootstrap(AimApp, [
  ...,
  provide(RxWebSocket, {useFactory: (url:string) => {
    return new RxWebSocket(url, WebSocket);
  }, deps: [SOCKET_URL]})
]);

因为我对Angular不是很熟悉,不然怎么称呼呢?

{ new(url:string): WebSocket } 这定义了一个构造函数签名,用于保存 class 个构造函数。 = WebSocket为参数提供默认值,WebSocketclass。

这样做的目的是允许用户插入一个自定义的WebSocketclass,它与WebSocketclass兼容,而且还提供了一个通过为 WebSocketCtor 参数

提供默认值来实现默认实现