【发布时间】:2018-01-28 21:44:24
【问题描述】:
我想从我的源代码中去除冗长的 Flow。有没有办法在单独的文件中声明类型?
这就是我所拥有的:
// @flow
// src/writer.js
class Writer {
write(text: string):string {
return `I wrote ${text}`
}
}
这就是我想要实现的目标:
// @flow
// src/writer.js
class Writer {
write(text) {
return `I wrote ${text}`
}
}
// src/definitions/writer.js.flow
declare class Writer {
write(text: string):string
}
我尝试将writer.js.flow 放在flow-typed 文件夹中,还尝试声明Writer 将扩展的IWriter 接口。 Flow 不喜欢它。
我不确定这是否可能,因为函数可以声明自己的变量,这些变量也应该被正确注释。
【问题讨论】:
-
我想你会将
.js.flow文件与.js文件放在同一个文件夹中? -
@loganfsmyth 它不起作用
-
再看一遍,您是否尝试对给定文件的导出类进行类型检查? Flow 的
.js.flow文件适用于在模块边界公开的类型,但它们在实现该逻辑的文件中不会真正产生任何影响。我不完全确定我理解你在这种情况下拆分事情的动机。不必复制所有功能,这样会使其更冗长吗?
标签: javascript ecmascript-6 flowtype flow-typed