[英]Extract flow type annotations into external files
我想从我的源代码中删除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不喜欢它。
我不确定这是否可能,因为函数可以声明自己的变量,这些变量也应正确注释。
在Flow中,没有一种方法可以完全满足您的需求。 支持一些特定的用例:
如果您有一些非Flow代码(例如库)和一些Flow应用程序代码,并且希望Flow代码可以使用非Flow代码,但知道涉及的类型,则可以编写“库定义” 。 重要的是要了解,不会对照实现代码检查此库定义,只是假定它是正确的,因此您必须小心编写libdefs。
如果您具有Flow代码,并且想要在不带Flow批注的情况下阅读或运行它,则可以使用flow-remove-types将Flow语法从文件中剥离。
但我认为您还想要其他东西。 听起来您想编写没有Flow批注的代码,然后将批注写入另一个文件,但是让Flow根据代码检查批注。 Flow目前不支持此功能。
(顺便说一句,我也不希望它们会添加任何东西。类型的主要好处是在阅读,编写和思考代码时提供了帮助。Flow具有很好的推断能力,因此总的来说,您不必编写那么多代码键入,但是您所做的(如在导出的函数中)通常有助于思考代码。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.