我正在用JavaScript + Flow编写一些代码,并希望保持其尽可能纯净,这也意味着跳过诸如window
或document
之类的全局变量,并将它们作为函数参数传递。但是,很容易忘记这里或那里的流浪document
参考。是否可以以某种方式禁止这些全局变量,只允许它们在顶级文件中?到目前为止,我在大多数文档的顶部都这样做:
const window = undefined
const document = undefined
这样,只有作为参数传入的实例才起作用:
// This works
function foo(document: Document) {
document.doThisOrThat();
}
// This triggers a typecheck error
function bar() {
document.doThisOrThat();
}
还有其他解决方案吗? (我希望采用白名单方法,禁止所有白名单中的全局变量。)
答案 0 :(得分:0)
您可以通过在flowconfig的no_flowlib=true
部分中添加[options]
来将Flow设置为忽略flowlib。
从那里,您可以创建自己的libs文件夹,并且仅包含所需的库定义。要使它们全局可用,请将路径添加到flowconfig的[libs]
部分中的libs文件夹。