Comments (5)
目前已经设置了no-var
from eslint-config-alloy.
@lcxfs1991 所以这项规则要打开嘛,保持**一致性~
from eslint-config-alloy.
当一个函数比较长时,var
都定义在最前面,而在后面才被赋值的话,阅读起来会比较麻烦——
- 它是第一次被赋值吗?
- 它是局部变量还是全局变量?
- 它是函数参数传进来的吗?
from eslint-config-alloy.
@xcatliu 这条规则是用来限定var
的,因为var
后定义会进行变量提升,避免先使用后定义的情况。
不过对你说的这几个问题我有一些看法:
首先,一个函数比较长,就应该反思一下是否可以拆分为多个函数,往往一个长函数无法保证单一职责原则了。
其次,一个变量是局部变量还是全局变量,和定义的远近其实没有必然联系,一个变量往往有多处被使用的地方,并不能保证使用时一定能够在就近的地方定义,是否隐式定义全局变量要靠工具去检测,按照这个说法,我也可以说看到一个后面定义的变量,我还会担心这个变量到底是被定义过了还是没定义过呢?
最后,函数传参本身不需要定义,无论是前定义和后定义,而且这类查找应该借助的是编辑器的goto definition功能,而不是凭猜测来看是哪里定义的。
from eslint-config-alloy.
我们会要求一个函数尽量短,但是现实中有时确实很难做到,所以才没有限制一个函数的最大长度,只限制了复杂度,只要是线性的,太长也没关系。
看到一个后面定义的变量,不需要担心它在前面有没有被定义过,因为如果它在前面已经被定义过了,eslint 就会报错了。
from eslint-config-alloy.
Related Issues (20)
- 为什么在vue.js中eqeqeq是off二不是error? HOT 10
- Typo: no-unused-vars HOT 1
- [feature] eslint-config-alloy@3 中建议将parser由babel-eslint升级为@babel/eslint-parser HOT 2
- TypeScript should disable "no-undef" HOT 1
- 请问一下有没有对 typescript 5 的支持计划 HOT 1
- 安装[email protected]版本报错 HOT 5
- 为什么要启用这个 prefer-object-has-own 规则,有兼容性问题 HOT 1
- consistent type export/import HOT 6
- [feature] eslint rules conflict with mocha timeout HOT 1
- @typescript-eslint/parser 更新到 6.5.0 以上版本后报错 Error while loading rule '@typescript-eslint/consistent-type-assertions'
- vue/cli 5.0.8版本使用ts+vue的例子时,出现ERROR HOT 1
- 是否可以加入import排序配置 HOT 1
- 什么时候会适配新的eslint.config.js HOT 2
- 是否开个新坑呢?关于biomejs HOT 2
- [feature] 考虑一个alloy版本兼容不同语言,比如vue2/vue3/typescript4/typescript5 HOT 4
- 提供的 example 无法使用 HOT 4
- no-undef 规则默认关闭的原因是什么? HOT 1
- 请问 @babel/core @babel/eslint-parser 是否还有必要安装
- 当前提供的库和vue命令行安装的库并不相同,是否同步为官方推荐的库? HOT 2
- Support eslint 9 flat config
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from eslint-config-alloy.