【发布时间】:2021-03-12 17:41:23
【问题描述】:
我最近使用 Flow 将一个项目更新到了 0.138.0 版本。 更新后,我第一次遇到类似这样的错误:
无法为此模块构建类型化接口。您应该使用类型注释此模块的导出。缺少类型 属性
_dispatchUpdate处的注释:[签名验证失败]
我们的项目由许多类组成,其中一些看起来像这样
export class SomeActions {
_interval: IntervalID;
_isPolling: boolean;
_dispatchUpdate = (downloadItems: DownloadItems[]): void => {
AppDispatcher.dispatch({
actionType: CONSTANT.CONSTANT,
downloadItems,
})
}
}
export default new SomeActions();
为了解决有问题的错误,我开始实现如下接口
interface SomeActionsT {
_interval: IntervalID;
_ isPolling: boolean;
_dispatchUpdate: (DownloadItems[]): void;
}
export class SomeActions implements SomeActionsT {
_interval: IntervalID;
_isPolling: boolean;
_dispatchUpdate = (downloadItems: DownloadItems[]): void => {
AppDispatcher.dispatch({
actionType: CONSTANT.CONSTANT,
downloadItems,
})
}
}
export default new SomeActions();
但流量错误仍然存在。如果我将 _dispatchUpdate 重构为普通函数,它将不再抱怨。但这很愚蠢。如何让流程识别箭头功能?
【问题讨论】:
标签: javascript flowtype arrow-functions