小编Cha*_*nan的帖子

我可以在 Typescript 方法装饰器中访问目标类实例吗?

我正在用 Typescript 创建一个 WebSocket 服务器,其中不同的应用程序组件应该能够注册自己的请求处理程序。有一个WebsocketHandler提供这种行为的单身人士。

没有装饰器,一个类可以像这样注册它的请求处理程序:

class ListOfStuff {
  private list = [];

  constructor() {
    //Register listLengthRequest as a request handler
    WebsocketHandler.getInstance().registerRequestHandler('getListLength', () => this.listLengthRequest());
  }

  private listLengthRequest() : WebSocketResponse {
    return new WebSocketResponse(this.list.length);
  }
}

class WebsocketHandler {
  private constructor() {}

  private static instance = new WebsocketHandler();

  static getInstance() {
    return this.instance;
  }

  registerRequestHandler(requestName: string, handler: () => WebSocketResponse) {
    //Store this handler in a map for when a request is received later 
  }
}

class WebSocketResponse …
Run Code Online (Sandbox Code Playgroud)

decorator typescript

3
推荐指数
2
解决办法
1476
查看次数

标签 统计

decorator ×1

typescript ×1