您需要在类中声明您的toggle
,例如(简洁方式):
class Foo {
toggle: Function = () {
...
}
}
class Foo {
toggle: Function;
toggle() {
...
}
}
或者,就像你说的那样
有关更多详细信息,请参见此问题
this
强制转换为any
参考flowtype issue #1517。(this: any).toggle = this.toggle.bind(this);
any
类型的变量将this
分配给另一个any
类型的变量。与1)相同,但是当有许多要绑定的函数时,这是一种方便的方式,可以避免在每行代码中进行转换。
const self: any = this;
self.toggle = this.toggle.bind(this);
toggle: Function;
toggle() {
...
}
toggle: Function = () => {
...
}
我认为,toggle需要单独声明,如下所示(不确定它的用法,因为没有提供代码)
toggle: Function;
toggle() {
console.log('ho');
}
https://github.com/ryyppy/flow-guide/issues/6
并且
https://github.com/facebook/flow/issues/3076
编辑
根据官方文档,您需要按照以下步骤避免错误:
协变属性与逆变使用不兼容,在分配属性时会出错。
function g(o: {-p: string}): void {
o.p = "default";
}
var o: {p: ?string} = {p: null};
g(o);
toggle
的重复声明。 - fIwJlxSzApHEZIl