如果您使用类似 $FlowIssue
的内容,则不能保证它会出现在每个人的 .flowconfig
文件中。如果您声明一个库接口(interface),那么它似乎只适用于给定的项目,而不适用于导入您的包的其他项目(即使您在 NPM 包中提供了 .flowconfig 和接口(interface)文件)。
这是我试图抑制使用我的包的应用程序中的错误的代码:
// $FlowIssue
const isSSRTest = process.env.NODE_ENV === 'test' // $FlowIssue
&& typeof CONFIG !== 'undefined' && CONFIG.isSSR
CONFIG
是 Jest 运行测试时存在的全局变量。
我之前有一个 CONFIG
的接口(interface)声明,但在用户应用程序中并没有得到尊重 - 也许我缺少一种使其工作的机制?通过此解决方案,至少用户很有可能获得 $FlowIssue
抑制评论。但还是不够好。
使用 Flow 构建的包的惯用解决方案是什么?
最佳答案
声明全局变量
这是声明全局变量的方法:
声明 var CONFIG: any;
。您可以/应该使用实际类型,而不是 any
。
错误抑制
在 flow v0.33 中,他们引入了 this change :
suppress_comment now defaults to matching // $FlowFixMe if there are no suppress_comments listed in a .flowconfig
这意味着如果您使用 $FlowFixMe,您的错误被抑制的可能性更大。
关于node.js - 在 Flow NPM 包中,抑制问题以使用户应用程序看不到错误的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42154415/