Typescript 4.6 和箭头函数

Typescript 4.6 and Arrow Functions

我们最近更新到 typescript 4.6(从 4.5)并且遇到了一些奇怪的 this 问题。

例如,我们之前在 #handleUnsavedData = async (event: BeforeUnloadEvent): Promise<boolean> => { 定义了一个函数,并通过 this.workspaceService.handleUnsaved = this.#handleUnsavedData

传递给了一个服务

看来我们现在需要像 async #handleUnsavedData(event: BeforeUnloadEvent): Promise<boolean> { 和 'pass' 那样用箭头来定义它 this.workspaceService.handleUnsaved = event => this.#handleUnsavedData(event);

看来我们也不能再访问构造函数之前注入的构造函数服务了? 之前:

export class HeaderComponent {
  @Input() close = this.workspaceService.close;

  constructor(private workspaceService: WorkspaceService) { }
}

之后:

export class HeaderComponent {

  constructor(private workspaceService: WorkspaceService) { }

  close() {
    this.workspaceService.close();
  }
}

我觉得我在这里遗漏了一些非常基本的东西,但我已经阅读并重新阅读了 TS 4.6 文档,并且正在努力寻找导致这种情况的原因。

我不知道我做了什么来解决这个问题,但是我在某处更改了一些不相关的东西,这个 'issue' 就消失了。