首页
Javascript
Html
Css
Node.js
Electron
移动开发
小程序
工具类
服务端
浏览器相关
前端收藏
其他
关于
公司注册

eslint:no-case-declarations

2018年12月28日 发布 阅读(3096) 作者:Jerman

在case / default子句中禁止词法声明

"extends": "eslint:recommended"配置文件中的属性启用此规则。

该规则禁止词法声明(letconstfunctionclass在)case/ default条款。原因是词法声明在整个开关块中是可见的,但只有在分配时才会被初始化,这只有在达到定义它的情况下才会发生。

要确保词法声明仅适用于当前case子句,请将子句包装在块中。

规则细节

此规则旨在防止访问未初始化的词法绑定以及跨案例子句访问提升的函数。

此规则的错误代码示例:

  1. /*eslint no-case-declarations: "error"*/
  2. /*eslint-env es6*/
  3. switch (foo) {
  4. case 1:
  5. let x = 1;
  6. break;
  7. case 2:
  8. const y = 2;
  9. break;
  10. case 3:
  11. function f() {}
  12. break;
  13. default:
  14. class C {}
  15. }

此规则的正确代码示例:

  1. /*eslint no-case-declarations: "error"*/
  2. /*eslint-env es6*/
  3. // Declarations outside switch-statements are valid
  4. const a = 0;
  5. switch (foo) {
  6. // The following case clauses are wrapped into blocks using brackets
  7. case 1: {
  8. let x = 1;
  9. break;
  10. }
  11. case 2: {
  12. const y = 2;
  13. break;
  14. }
  15. case 3: {
  16. function f() {}
  17. break;
  18. }
  19. case 4:
  20. // Declarations using var without brackets are valid due to function-scope hoisting
  21. var z = 4;
  22. break;
  23. default: {
  24. class C {}
  25. }
  26. }

说明

此规则在case中定义变量时,必须使用大括号{}

版权声明:本站文章除特别声明外,均采用署名-非商业性使用-禁止演绎 4.0 国际 许可协议,如需转载,请注明出处
  • ESLint的使用

    eslint使用注意事项

    发布:2019-01-03 阅读(3484)

  • 'define' is not defined.'$' is not defined.

    eslint环境变量设置

    发布:2019-01-02 阅读(5842)

  • eslint:no-case-declarations

    该规则禁止词法声明(`let`,`const`,`function`和`class`在)`case/ default`条款。原因是词法声明在整个开关块中是可见的,但只有在分配时才会被初始化,这只有在达到定义它的情况下才会发生。

    发布:2018-12-28 阅读(3096)

  • eslint:no-restricted-globals

    如果您希望通过启用环境来允许一组全局变量,但仍希望禁止其中某些变量,则禁止使用特定的全局变量非常有用。 例如,早期的Internet Explorer版本将当前的DOM事件暴露为全局变量 event,但是长期以来,使用此变量一直被认为是一种不好的做法。限制此操作将确保在浏览器代码中不使用此变量。

    发布:2018-12-28 阅读(4632)