我在项目中使用flow js进行静态类型检查。我在检查类型时遇到错误。
以下是我在项目中设置流程时所遵循的步骤。
npm i flow-bin -SD
在project.json中添加了命令:
"scripts": {
"flow": "flow",
"flow:check": "flow check ./src/"
}
现在,在运行npm run flow:check时,我收到此错误。
Missing type annotation for fn.
6| module.exports = function( ds, schema, fn ) {
^^
答案 0 :(得分:2)
因为Flow需要告诉它该函数的类型签名。
现在,如果你不能控制的代码(例如node_modules
内部的代码),我建议将其排除在Flow之外。大多数图书馆都没有为Flow发布/捆绑类型定义(flow-typed
repo可能有它们)。
如果这是您控制的代码(它是您应用程序代码的一部分),那么只需添加类型即可。例如(这是随机类型,您应该用正确的类型替换它们):
module.exports = function( ds: string, schema: number, fn: (string) => boolean ): boolean {
// ...
};
在此示例中,ds
参数必须是字符串,schema
必须是数字,fn
参数必须是接受字符串的函数唯一的参数,并在调用时返回一个布尔值。导出函数的结果类型也是布尔值。