首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不出现ESLint错误的情况下在流中声明更改参数的函数

如何在不出现ESLint错误的情况下在流中声明更改参数的函数
EN

Stack Overflow用户
提问于 2019-11-05 06:00:04
回答 1查看 164关注 0票数 1

我在一个CLI脚本中同时使用了ESLint和Flow,并且正在努力解决如何告诉Flow如何以一种ESLint不会抱怨的方式更改参数的函数。

代码语言:javascript
复制
#!/usr/bin/env node

// I define a dummy function that gets redefined later 
let debug = () => {}
// let debug = (msg?:string) => {}" // ESLint complains about unused vars

// Main function - in here debug gets defined based on some new data
const foo = () => {
  ...
  debug = (msg: string) => console.log(msg)

}
// Outside of the main func I still need to call it in a couple of places. 
debug('go') // Flow: Cannot call `debug` because no arguments are expected by function

const handleRejection = async err => {
  debug('error')
}

process.on('unhandledRejection', handleRejection)

// Run script (CLI)
foo()

代码运行得很好,但我想知道是否有更好的方法来创建ESLint和Flow happy.Right,现在我告诉ESLint忽略它。

有合适的解决方法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-06 09:06:57

最简单的事情是显式声明debug的类型,因为这里的核心问题是流不能告诉应该是什么类型,例如

代码语言:javascript
复制
let debug: (msg: string) => void = () => {};

代码语言:javascript
复制
type DebugFn = (msg: string) => void;
let debug: DebugFn = () => {};
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58701687

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档