如何使以下代码与流js注释一起使用?使用Object.create()

时间:2017-06-12 06:32:08

标签: javascript flowtype es6-class

请检查:https://flow.org/try/#0PQKgBAAgZgNg9gdzCYAoVBjGBDAzrsAQTAG9UwwBzAUwBcws4A7agCgEoAuMWgCwEsCZChQBOdAK6imYAPIAjAFbUMtAHR5c-Sk1YLlqtRnHZabPoPYAaHgNztyYAL6oXmHPjAAhMNQAeZkwAJgTEJG4AbtiiYPJgALxgLEheHADcqFExGAmxRvAsqEA

在以下代码中,我在clone电话上收到错误消息:

/* @flow */

class A {
  get clone(): this {
     return Object.assign(Object.create(this), this)
  }
}

class B extends A {}

var b = new B();
var c = b.clone

我收到错误:协变属性clone与调用方法assign时的逆变使用不兼容。

如何注释,请更正我的例子。

1 个答案:

答案 0 :(得分:0)

我现在正在使用它(通过施放给任何人):

/* @flow */

class A {
  get clone(): this {
     return Object.assign((Object.create(this): any), this)
  }
}

class B extends A {}

var b = new B()
var c = b.clone