流无法分配函数,因为属性中止不可写

Jua*_*ado 5 javascript flowtype

我正在使用 Flow 最新版本(0.75.0),但我找不到abort在没有 Flow 抱怨的情况下覆盖该方法的方法

interface Inter {
  abort(): void;
  done(): void;
}

class Hello implements Inter {
   abort() {}
   done(){}
}

let h = new Hello();

h.abort = function() {}
Run Code Online (Sandbox Code Playgroud)

错误如下。

../-:15: h.../ abort = function() {}
           ^ Cannot assign function to `h.abort` because property `abort` is not writable.
Run Code Online (Sandbox Code Playgroud)

https://flow.org/try/#0JYOwLgpgTgZghgYwgAgJLmsg3gKGcgajgCMB7KMALmQDEBXEBMYUkAbj0IBNWJr7GzVhwC+OcQgA2cAM4zkACQiTJpZMAC2AB0kQNEcPPSQo2cfmQlyYABQBKbGIs8QEe1jFicusMgAWy AC8yK4A7orKqvYcOH4AdFYUQcgwDEwsIPaOQA

Jua*_*ado 4

正如马克所指出的,用 包装实例可以(h: any)解决问题。它并不完美,但可以避免错误。

let h = new Hello();

(h: any).abort = function() {}
Run Code Online (Sandbox Code Playgroud)