草庐IT

javascript - 有任何 linter 可以警告 JavaScript 中的副作用吗?

凭借JavaScript的灵active,我们可以编写充满副作用的代码,或者只是纯函数式的代码。我一直对函数式JavaScript很感兴趣,并且想在这个范例中开始一个项目。一个关于它的linter肯定可以帮助我收集好的实践。是否有任何linter来强制执行纯功能和无副作用的风格? 最佳答案 纯度分析相当于SolvingtheHaltingProblem,所以一般情况下,任何一种可以判断代码是纯的还是不纯的静态分析都是不可能的。总会有无穷多的程序,它们是否是纯的是不可判定的;其中一些程序是纯的,一些是不纯的。现在,您故意使用术语“li

javascript - ESlint 是否有关于函数中第一个语句之前的空行的规则?

由于ESLint,我发现了一个规则newline-before-return关于return语句之前的空行。但是在函数的第一条语句之前没有看到关于空行的规则。例如:function(a){varb=+a;}ESlint对此有规定吗?如果有,这条规则的名称是什么?谢谢 最佳答案 padded-blocks规则允许您在block的开始和结束处要求换行,包括函数体。除了函数体之外,它还涵盖了if语句、for和while循环以及其他类似block的结构体,您可以可能想要也可能不想要。尝试将以下代码粘贴到demo中,看看它是否适合您:/*es

javascript - 使用 ESLint `indent` 规则忽略模板文字中的缩进

indent的ESLint规则允许您在确定规则是否应用于该节点时使用ignoredNodes选项指定忽略哪些节点。我有以下代码,我想使用此规则忽略它们:consta=b?`c${d}`:e具体来说,带有d的行和后续行被报告为比应有的多了两个空格。我想忽略规则中的那些行,但我无法找出应该应用的节点。指定节点类型inthisrepo.我知道三元表达式,就像在这段代码中使用的那样,是一个ConditionalExpression节点,它看起来像一个templateliteralnode存在,但我无法让它工作。我知道我可以使用eslint-disable-next-line、eslint-di

javascript - Eslint - 脚本和模块的 SourceType 混合体

我们开始混入一些es6模块,当您在不使用sourceType:脚本的情况下使用import/export时,eslint会公正地提示Parsingerror:'import'and'export'mayappearonlywith'sourceType:module'atline1col1但是,如果我将sourceType更改为模块,那么每个具有“usestrict”的文件;在顶部被标记为模块中不需要usestrict。模块是我的jsx文件,我的js文件是POJ,所以我需要两个sourceTypes才能运行。关于如何强制eslint与模块和脚本一起工作有什么想法吗?我想避免运行两个单独

javascript - 静态元素交互

我有以下代码:Enabled=(id)=>{letremoval=null;if(!this.props.disabled){removal=(this.onDelete(id)}>x);}returnremoval;}它运行良好,但linter给我:jsx-a11y/no-static-element-interactions如何解决这个错误(根据jsx-a11y)? 最佳答案 来自文档:Enforcenon-interactiveDOMelementshavenointeractivehandlers.Staticelement

javascript - 在 React 中使用 htmlFor 传递 eslint html-has-for

我有一个无状态的React组件,如下所示:constpropTypes=exact({fieldId:PropTypes.string.isRequired,text:PropTypes.string.isRequired,});functionLabel({fieldId,text}){return({text});}Label.propTypes=propTypes;我正在使用通过airbnb配置扩展的eslint。我的eslint看起来像这样:{"extends":"airbnb"}我的React代码抛出这个错误:errorFormlabelmusthaveassociatedc

javascript - 无法读取配置文件 .eslintrc.json 错误 : Unexpected token }

我正在为我的ReactJSES6项目探索EsLint,但我立即陷入困境。我创建了一个与here完全一样的.eslintrc.json:{"parserOptions":{"ecmaVersion":6,"sourceType":"module","ecmaFeatures":{"jsx":true},},"rules":{"semi":2}}我现在该怎么办?Cannotreadconfigfile:/Users/eric/af/frontend_app/.eslintrc.jsonError:Unexpectedtoken}SyntaxError:Cannotreadconfigfil

javascript - Prefer destructuring es-lint错误

我有这个功能:constcalculateTotal=(items)=>{returnitems.reduce((totalPrice,basketItem)=>{constprice=basketItem.product.price;constquantity=basketItem.quantity;consttotal=price*quantity;returntotalPrice+total;},0);};如何使用ES6+解构来解决这个问题?我知道我需要类似的东西(第4行):const{basketItem:数量}=数量;但是我无法让第3行工作 最佳答

javascript - 在 Firebase 云函数中包含异步函数 (eslint "Parsing error: Unexpected token function")

问题如何将async辅助方法添加到CloudFunctionsindex.js文件中?在将fs.writefile转换为Promise时,需要一个async函数才能使用await,如本文所述StackOverflow帖子:fs.writeFileinapromise,asynchronous-synchronousstuff.但是,lint不赞成在exports函数之外向index.js文件添加额外的方法。错误第84行引用辅助函数asyncfunctionwriteFile。Users/adamhurwitz/coinverse/coinverse-cloud-functions/fu

javascript - 我如何处理 React JSX 中的长类名?

假设我在ReactJSX中渲染这个组件:render(){return(Sometext);}这些类触发我的JSlinter,因为一行太长,而且很难阅读。如何在不破坏JSX语法或在JSlinter中触发不同错误的情况下,将React组件中的长className属性分成多行?(我正在使用ESLint)。 最佳答案 另一个Cleaner方法是将类名存储在一个数组中并连接它们。render(){constclassNames=['col-xs-6','col-xs-offset-3','col-md-4','col-md-offset-4