啥?常用的 export 居然有坑?

导出是大家常用的语法吧,比如说:

export const test = () => {}
export default const test = () => {}
export default () => {}

以上三种写法都是没问题的,但是如果我们使用第三种写法导出一些代码时,很可能会遇到一些意料之外的坑。

首先我们导出了一个匿名函数,如果在运行该函数的过程中报错了,那么我们很难在 Devtools 展示出来的调用栈中了解到底是哪个函数出了问题,报错信息不会很直观。我相信大家肯定遇到过报错信息最后个调用栈是匿名函数的情况。

2028b5c60a4c7a9fa9115e2560dfe8d6.png
LHgpeY

因此如果不是必须得这样写的话,我们还是尽可能使用非匿名的导出方式,也就是多写了几个字,但是能避免一些不必要的 debug 麻烦。

另外我们也可以通过 ESLint 来解决这个问题,只需要使用 eslint-plugin-import[1] 插件即可。

这个插件可以通过一些配置来提示有问题的代码位置:

"import/no-anonymous-default-export": ["error", {
  "allowArray": false,
  "allowArrowFunction": false,
  "allowAnonymousClass": false,
  "allowAnonymousFunction": false,
  "allowCallExpression": true, // The true value here is for backward compatibility
  "allowLiteral": false,
  "allowObject": false
}]

通过以上配置,我们再写以下类似代码的时候就会直接报错:

export default []

export default () => {}

export default class {}

export default function () {}
引用链接

[1] eslint-plugin-import: https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-anonymous-default-export.md

快手前端正急缺人才,如果你想加入我们,欢迎加我微信和我联系。另外如果你想加入高质量前端交流群,或者你有任何其他事情想和我交流也可以扫码添加我微信 。

文中如有错误,欢迎在留言区和我留言,如果这篇文章帮助到了你,欢迎点赞、在看和关注。你的点赞、在看和关注是对我最大的支持!

b2c0aff9368f8d232c306806fb5adf5c.png

关注公众号后,在首页:

回复资料高级前端进阶指南、10 万字面试指南等各类资料

回复1进入高级前端进阶群

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值