ESLint 中的“ space-before-function-paren ”相关报错及其解决方案

ESLint 中的“ space-before-function-paren ”相关报错及其解决方案

出现的问题及其报错:

  • 在 VScode 中,在使用带有 ESLint 工具的项目中,保存会发现报错,并且修改好代码格式后,保存会发现代码格式依然出现问题:
  • 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

报错原因:

  • “ space-before-function-paren ” 英文 翻译为 中文 为“函数参数前的意外空格”
  • 报这个错误的原因是 函数名称 或 function关键字 与开始参数之间缺少空格(或多出空格),可以通过修改 eslint 的配置文件来更改语法检测规则
  • 在–fix命令行上的选项可以自动修复一些被这条规则反映的问题。
  • 格式化函数时,函数名称或function关键字与开始参数之间允许有空格。命名函数还需要function关键字和函数名称之间的空格,但匿名函数不需要空格。

解决方案:

方案一:

  • 打开 .eslintrc.js 文件,并在 rules 中添加如下一行代码即可:

  •  "space-before-function-paren": 0,
    

方案二:

  • 打开 .eslintrc.js 文件,并在 rules 中添加如下一行代码即可:

  • 'space-before-function-paren': ['error', 'never', { 
                                               anonymous: 'always', 
                                               named: 'always', 
                                               asyncArrow: 'always' 
                                             }],
    

方案三:

  • 打开 .eslintrc.js 文件,并在 rules 中添加如下一行代码即可:

  • 'space-before-function-paren': ['error', 'never'],
    
  • 以上三种方案都试过后,其中会有一种方法就可以解决问题啦 ,这是最快的解决方案,每个都尝试一遍;

  • 注意: 三种方案只可以使用一种,看自己的需求,三种方案会有一种适合你的报错

  • 在这里插入图片描述

space-before-function-paren 规则:

  • --fix 命令行上的选项可以自动修复一些被这条规则反映的问题。

  • 格式化函数时,函数名称或 function 关键字与开始参数之间允许有空格。命名函数还需要 function 关键字和函数名称之间的空格,但匿名函数不需要空格。例如:

  • function withoutSpace(x) {
        // ...
    }
     
    function withSpace (x) {
        // ...
    }
     
    var anonymousWithoutSpace = function() {};
     
    var anonymousWithSpace = function () {};
    
  • 样式指南在 function 匿名函数的关键字之后可能需要一个空格,而另一些则不指定空白。同样,函数名称后面的空格可能需要也可能不需要。

规则细节

  • 此规则旨在在函数括号之前强制执行一致的间距,因此,只要空格不符合指定的偏好,就会发出警告。

选项

  • 此规则具有字符串选项或对象选项:

  • {
        "space-before-function-paren": ["error", "always"],
        // or
        "space-before-function-paren": ["error", {
            "anonymous": "always",
            "named": "always",
            "asyncArrow": "always"
        }],
    }
    
  • always(默认)需要一个空格,然后(是参数。

  • never在(参数后面不允许任何空格。字符串选项不会检查异步箭头函数表达式的向后兼容性。您还可以为每种类型的功能使用单独的选项。下列选项每一个都可以被设置为"always",“never"或"ignore”。默认是"always"。

  • anonymous是用于匿名函数表达式(例如function () {})。

  • named是用于命名函数表达式(例如function foo () {})。

  • asyncArrow是用于异步箭头函数表达式(例如async () => {})。

“always”

  • 此规则的默认代码错误代码示例"always"

  • /*eslint space-before-function-paren: "error"*/
    /*eslint-env es6*/
     
    function foo() {
        // ...
    }
     
    var bar = function() {
        // ...
    };
     
    var bar = function foo() {
        // ...
    };
     
    class Foo {
        constructor() {
            // ...
        }
    }
     
    var foo = {
        bar() {
            // ...
        }
    };
     
    var foo = async() => 1
    
  • 具有默认选项的此规则的正确代码示例"always"

  • /*eslint space-before-function-paren: "error"*/
    /*eslint-env es6*/
     
    function foo () {
        // ...
    }
     
    var bar = function () {
        // ...
    };
     
    var bar = function foo () {
        // ...
    };
     
    class Foo {
        constructor () {
            // ...
        }
    }
     
    var foo = {
        bar () {
            // ...
        }
    };
     
    var foo = async () => 1
    
  • “never”此规则的错误代码示例包含以下"never"选项:

  • /*eslint space-before-function-paren: ["error", "never"]*/
    /*eslint-env es6*/
     
    function foo () {
        // ...
    }
     
    var bar = function () {
        // ...
    };
     
    var bar = function foo () {
        // ...
    };
     
    class Foo {
        constructor () {
            // ...
        }
    }
     
    var foo = {
        bar () {
            // ...
        }
    };
     
    var foo = async () => 1
    
  • 此规则的正确代码示例包含以下"never"选项:

  • /*eslint space-before-function-paren: ["error", "never"]*/
    /*eslint-env es6*/
     
    function foo() {
        // ...
    }
     
    var bar = function() {
        // ...
    };
     
    var bar = function foo() {
        // ...
    };
     
    class Foo {
        constructor() {
            // ...
        }
    }
     
    var foo = {
        bar() {
            // ...
        }
    };
     
    var foo = async() => 1
    
  • {“anonymous”: “always”, “named”: “never”, “asyncArrow”: “always”}
    此规则的错误代码示例包含以下{“anonymous”: “always”, “named”: “never”, “asyncArrow”: “always”}选项:

  • /*eslint space-before-function-paren: ["error", {"anonymous": "always", "named": "never", "asyncArrow": "always"}]*/
    /*eslint-env es6*/
     
    function foo () {
        // ...
    }
     
    var bar = function() {
        // ...
    };
     
    class Foo {
        constructor () {
            // ...
        }
    }
     
    var foo = {
        bar () {
            // ...
        }
    };
     
    var foo = async(a) => await a
    
  • 此规则的正确代码示例包含以下{"anonymous": "always", "named": "never", "asyncArrow": "always"}选项:

  • /*eslint space-before-function-paren: ["error", {"anonymous": "always", "named": "never", "asyncArrow": "always"}]*/
    /*eslint-env es6*/
     
    function foo() {
        // ...
    }
     
    var bar = function () {
        // ...
    };
     
    class Foo {
        constructor() {
            // ...
        }
    }
     
    var foo = {
        bar() {
            // ...
        }
    };
     
    var foo = async (a) => await a
    
  • {“anonymous”: “never”, “named”: “always”}此规则的错误代码示例包含以下{“anonymous”: “never”, “named”: “always”}`选项:

  • /*eslint space-before-function-paren: ["error", { "anonymous": "never", "named": "always" }]*/
    /*eslint-env es6*/
     
    function foo() {
        // ...
    }
     
    var bar = function () {
        // ...
    };
     
    class Foo {
        constructor() {
            // ...
        }
    }
     
    var foo = {
        bar() {
            // ...
        }
    };
    
  • 此规则的正确代码示例包含以下{"anonymous": "never", "named": "always"}选项:

  • /*eslint space-before-function-paren: ["error", { "anonymous": "never", "named": "always" }]*/
    /*eslint-env es6*/
     
    function foo () {
        // ...
    }
     
    var bar = function() {
        // ...
    };
     
    class Foo {
        constructor () {
            // ...
        }
    }
     
    var foo = {
        bar () {
            // ...
        }
    };
    
  • {"anonymous": "ignore", "named": "always"}此规则的错误代码示例包含以下{"anonymous": "ignore", "named": "always"}选项:

  • /*eslint space-before-function-paren: ["error", { "anonymous": "ignore", "named": "always" }]*/
    /*eslint-env es6*/
     
    function foo() {
        // ...
    }
     
    class Foo {
        constructor() {
            // ...
        }
    }
     
    var foo = {
        bar() {
            // ...
        }
    };
    
  • 此规则的正确代码示例包含以下{"anonymous": "ignore", "named": "always"}选项:

  • /*eslint space-before-function-paren: ["error", { "anonymous": "ignore", "named": "always" }]*/
    /*eslint-env es6*/
     
    var bar = function() {
        // ...
    };
     
    var bar = function () {
        // ...
    };
     
    function foo () {
        // ...
    }
     
    class Foo {
        constructor () {
            // ...
        }
    }
     
    var foo = {
        bar () {
            // ...
        }
    };
    

何时不使用

  • 如果在函数括号之前不关心间距的一致性,则可以关闭此规则。

相关规则

  • space-after-keywords

  • space-return-throw-case

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/101430.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

HTTP介绍:一文了解什么是HTTP

前言: 在当今数字时代,互联网已经成为人们生活中不可或缺的一部分。无论是浏览网页、发送电子邮件还是在线购物,我们都离不开超文本传输协议(HTTP)。HTTP作为一种通信协议,扮演着连接客户端和服务器的重要角…

OpenCV(十四):ROI区域截取

在OpenCV中,你可以使用Rect对象或cv::Range来截取图像的感兴趣区域(Region of Interest,ROI)。 方法一:使用Rect对象截取图像 Rect_(_Tp _x, _Tp _y, _Tp _width,_Tp _height) Tp:数据类型&…

数据库(MySQL)的存储过程

一、存储过程介绍 存储过程是事先经过编译并存储在数据库中的一段SQL 语句的集合,调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。 存储过程思想上很简单&#xff0…

失效的访问控制漏洞复现(dvwa)

文章目录 失效访问控制是什么?dvwa漏洞复现用未授权访问获取shell 代码审计 失效访问控制是什么? 由于缺乏自动化的检测和应用程序开发人员缺乏有效 的功能测试,因而访问控制缺陷很常见。导致攻击者可以冒充用户、管理员或拥有特权的用户&…

Shell自动化日志维护脚本

简介: 系统日志对于了解操作系统的运行状况、故障排除和性能分析至关重要。然而,长期积累的日志文件可能变得庞大,影响系统性能。在这篇文章中,我们将介绍一个自动化的解决方案,使用 Bash 脚本来监控和维护系统日志文件…

编译KArchive在windows10下

使用QT6和VS2019编译KArchive的简要步骤: 安装 Qt ,我是用源码自己编译的 "F:\qtbuild"安装CMakefile并配置环境变量安装Git下载ECM源码 https://github.com/KDE/extra-cmake-modules.git-------------------------------------------------…

【业务功能篇94】微服务-springcloud-springboot-认证服务-注册功能-第三方短信验证API

商城认证服务 一、搭建认证服务环境 结合我们前面介绍的商城的架构我们需要单独的搭建一个认证服务。 1.创建项目 首先创建一个SpringBoot项目&#xff0c;然后添加对应的依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"htt…

ELK日志收集系统(四十九)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 一、概述 二、组件 1. elasticsearch 2. logstash 2.1 工作过程 2.2 INPUT 2.3 FILETER 2.4 OUTPUTS 3. kibana 三、架构类型 3.1 ELK 3.2 ELKK 3.3 ELFK 3.5 EF…

kubesphere安装Maven+JDK17 流水线打包

kubesphere 3.4.0版本&#xff0c;默认支持的jav版本是8和11&#xff0c;不支持17 。需要我们自己定义JenKins Agent 。方法如下&#xff1a; 一、构建镜像 1、我们需要从Jenkins Agent的github仓库拉取master最新源码&#xff0c;最新源码里已经支持jdk17了。 git clone ht…

C语言常见字符串和内存函数详解

字符串和内存函数 1. 前言2. 求字符串长度2.1 strlen 3. 长度不受限制的字符串函数3.1 strcpy3.2 strcat3.3 strcmp 4. 长度受限制的字符串函数4.1 strncpy4.2 strncat4.3 strncmp 5. 字符串查找5.1 strstr5.2 strtok 6. 错误信息报告6.1 strerror 7. 字符操作函数7.1 字符分类…

程序员自由创业周记#2:前期准备

感恩 上次公开了创业的决定后&#xff0c;得到了很多亲朋好友和陌生朋友的鼓励或支持&#xff0c;以不同的形式&#xff0c;感动之情溢于言表。这些都会记在心里&#xff0c;大恩不言谢~ 创业方向 笔者是一名资质平平的iOS开发程序猿&#xff0c;创业项目也就是开发App卖&am…

iPhone 14四款机型电池容量详细参数揭秘

苹果推出的iPhone 14系列与2021系列的设计和外形尺寸相同&#xff08;仅缩小了几分之一毫米&#xff09;&#xff0c;所以这并不奇怪&#xff0c;但电池容量也大致相同。 虽然可能不足以对电池寿命产生可衡量的影响&#xff0c;但也存在微小的差异。不同的是&#xff0c;现在有…

水果库存系统(SSM+Thymeleaf版)

不为失败找理由&#xff0c;只为成功找方法。所有的不甘&#xff0c;因为还心存梦想&#xff0c;所以在你放弃之前&#xff0c;好好拼一把&#xff0c;只怕心老&#xff0c;不怕路长。 文章目录 一、前言二、系统架构与需求分析1、技术栈1.1 后端1.2 前端 2、需求分析 三、设计…

创建性-构造者设计模式

前言 我们在使用Retrofit等这些第三方框架的时候&#xff0c;发现他们的使用都很方便&#xff0c;比如Retrofit retrofit new Retrofit.Builder().build()&#xff0c;和我们通常直接new一个对象不同&#xff0c;他是交给Builder类&#xff0c;通过build()函数来构造一个Retro…

【python使用 Pillow 库】缩小|放大图片

当我们处理图像时&#xff0c;有时候需要调整图像的大小以适应特定的需求。本文将介绍如何使用 Python 的 PIL 库&#xff08;Pillow&#xff09;来调整图像的大小&#xff0c;并保存调整后的图像。 环境准备 在开始之前&#xff0c;我们需要安装 Pillow 库。可以使用以下命令…

并发测试工具 apache-jmeter使用发送post请求JSON数据

目录 1 下载安装 2 汉化 3 创建高并发测试 配置线程组 创建web请求 创建监听器 结果树 汇总报告 为web请求添加token 添加Content-Type用于发送json 4 启动测试 5 查看结果 1 下载安装 官网Apache JMeter - Download Apache JMeter 解压运行 2 2 汉化 打开软件…

神经网络--感知机

感知机 单层感知机原理 单层感知机:解决二分类问题&#xff0c;激活函数一般使用sign函数,基于误分类点到超平面的距离总和来构造损失函数,由损失函数推导出模型中损失函数对参数 w w w和 b b b的梯度&#xff0c;利用梯度下降法从而进行参数更新。让1代表A类&#xff0c;0代…

ZMTP协议

ZoreMQ Transport Protocol是一个传输层协议&#xff0c;用于ZMQ的连接的信息交互&#xff0c;本文档描述的是3.0协议&#xff0c;主要分析基于NULL Security Mechanism 协议语法 ZMTP由三部分组成&#xff0c;分别是 greeting、handshake、traffic 部分描述构成greeting描述…

数据挖掘导论学习笔记1(第1 、2章)

参考&#xff1a;https://blog.csdn.net/u013232035/article/details/48281659?spm1001.2014.3001.5506 和《数据挖掘导论》学习笔记&#xff08;第1-2章&#xff09;_时机性样本_schdut的博客-CSDN博客 第1章 绪论 数据挖掘是一种技术&#xff0c;它将传统的数据分析方法…

【配置环境】Visual Studio 配置 OpenCV

目录 一&#xff0c;环境 二&#xff0c;下载和配置 OpenCV 三&#xff0c;创建一个 Visual Studio 项目 四&#xff0c;配置 Visual Studio 项目 五&#xff0c;编写并编译 OpenCV 程序 六&#xff0c;解决CMake编译OpenCV报的错误 一&#xff0c;环境 Windows 11 家庭中…
最新文章