我正在一个React Native项目中,我想逐步采用flow
。许多组件已经定义了props
和state
流类型。但是大多数方法和变量仍然不使用流类型。运行yarn flow
时,我遇到成千上万个错误,说Missing type annotation for ...
。
我现在想将流程配置为忽略此类错误。稍后,我将为所有内容添加类型,并且只有当我在每个js文件中完全键入所有对象时,这些错误才会相关。但这可能需要很长时间。因此,在继续检查流中已经使用流类型的文件部分的同时,如何临时或有选择地禁用这些错误警告?
答案 0 :(得分:1)
您无法关闭Flow中的特定错误。流仓库的根部有一个可以自动添加抑制的工具: https://github.com/facebook/flow/blob/master/tool
答案 1 :(得分:0)
我并不是说任何人都应该这样做,但是...这就是我的做法。我必须找到另一种方法,因为约旦的tool
解决方案对我不起作用。手动调用flow-bin
,解析返回的json,并跳过您不关心的任何错误。
const execFile = require('child_process').execFile
const flow = require('flow-bin')
const IGNORE_ERROR_CODES = [
'missing-annot'
]
const isValidError = (error) => !error.error_codes.some(code => IGNORE_ERROR_CODES.includes(code))
execFile(flow, ['check', '--json'], (err, stdout) => {
if (!stdout) {
console.error(err, stdout)
process.exit(1)
}
const result = JSON.parse(stdout)
const errors = result.errors.filter(isValidError)
const hasErrors = errors.length > 0
if (hasErrors) {
console.log(JSON.stringify(errors, null, 2))
process.exit(1)
} else {
console.log('Flow passed')
process.exit(0)
}
})
{
"scripts": {
"flow": "node flow.js"
}
}