ESLint常見錯誤

1、Strings must use singlequote? —— 字符串必須使用單引號

2、Extra semicolon?semi——額外的分號:一行語句結尾不能添加分號

?3、'Unexpected trailing comma' —— 行尾多了一個逗號

4、Newline required at end of file but not found? ——文件結尾必須要新加一行

5、'xxx' is assigned a value but never used??no-unused-vars ——?’xxx‘’變量已經聲明了,但是從未被使用

6、Missing space before =>??——箭頭函數前(括號后)缺少一個空格(箭頭 => 前后都要加)

錯誤示例?:(x)=>{...}
正確應為:(x) => { ... }(箭頭前后均需空格)
涉及規則:arrow-spacing

7、Trailing spaces not allowed ——?存在多余空格,刪除多余的空格

8、A space is required after/before 'x'??——在某個符號前面/后面需要加一個空格

錯誤示例?:const arr = [1,2,3]
正確應為:const arr = [1, 2, 3](逗號后需添加空格)
涉及規則:comma-spacing

9、Missing space before value for key 'x'? ——對象的值與鍵值對之間的冒號間缺少一個空格

錯誤示例?:{ a:1 }
正確應為:{ a: 1 }(冒號后需添加空格,冒號前無需空格)
涉及規則:key-spacing

10、Missing space before function parentheses??——函數圓括號前缺少空格

// 錯誤示例(命名函數)

function demo(){...} ? // 缺少空格

const obj = {demo:function(){...}} ?// `function` 關鍵字后缺少空格

// 正確示例 ?

function demo () {...} ?

const obj = {demo: function () {...}} ?

解決方案
1. 調整 ESLint 配置(推薦)?

在項目根目錄的?.eslintrc.js?文件中修改規則配置:

module.exports = {rules: {'space-before-function-paren': ['error', 'always']  // 強制添加空格?:ml-citation{ref="1,4" data="citationList"}// 或關閉規則檢查  'space-before-function-paren': 0                   // 禁用規則?:ml-citation{ref="1,2" data="citationList"}}
};
  • 需重啟項目?:修改配置后必須重啟項目才能生效?。
  • ?匿名函數與命名函數差異?:匿名函數(如對象方法)的?function?關鍵字后需空格,命名函數需在函數名后加空格?
?2. 修復代碼格式?

手動在函數聲明或表達式處添加空格:

// 命名函數  
function demo () { ... }  // 匿名函數(對象方法)  
const obj = {demo: function () { ... }   // `function` 后需空格?:ml-citation{ref="8" data="citationList"}
};  // 箭頭函數(若適用其他規則)  
const demo = () => { ... };  
?3. 處理格式化工具沖突?

若使用 Prettier 等工具自動格式化導致沖突,需調整其配置與 ESLint 規則一致。例如在?.prettierrc?中配置:

{"spaceBeforeFunctionParen": true  
}
?4. 使用 ESLint 自動修復?

通過命令行修復代碼(需確保規則未禁用):

eslint --fix your-file.js  
?其他注意事項?

(1)行內禁用規則?:在特定代碼段跳過檢查:

/* eslint-disable space-before-function-paren */  
function demo(){ ... }  // 不觸發規則  
/* eslint-enable space-before-function-paren */  

(2)配置優先級?:項目級?.eslintrc.js?優先級高于全局配置,確保修改正確文件?

11、Missing space before opening brace? ?—— 左大括號后換行

// 錯誤示例 ?
function demo(){ ... } ?
if (condition){ ... } ?

// 正確示例 ?
function demo() { ... } ?
if (condition) { ... } ?

13、Expected indentation of 2 spaces but found 4 ——?ESLint 默認要求使用 ?2 個空格? 作為縮進,但實際檢測到 ?4 個空格??

// 錯誤示例(4 空格縮進)
function demo() {
? ? console.log("test"); ?// 縮進為 4 空格
}

// 正確示例(2 空格縮進)
function demo() {
? console.log("test"); ? ?// 縮進為 2 空格
}

解決方案?
?1. 關閉 ESLint 縮進檢查(快速修復)

在?.eslintrc.js?中禁用?indent?規則:

module.exports = {rules: {'indent': 'off'  // 關閉縮進檢查?:ml-citation{ref="1,2" data="citationList"}}
};

此方法可快速消除報錯,但會導致代碼風格不一致,建議團隊項目慎用。

?2. 調整縮進規則為 4 空格(推薦)

若需保持 4 空格縮進,可修改?indent?規則配置:

module.exports = {rules: {'indent': ['error', 4]  // 強制使用 4 空格縮進?:ml-citation{ref="3,7" data="citationList"}}
};

需注意:部分 ESLint 插件(如?vue)可能需單獨配置縮進規則?

?3. 配置編輯器自動縮進

在編輯器中設置 ?Tab 轉換為 2 個空格?(以 VS Code 為例):

  1. 打開設置(Ctrl+,),搜索?tab size
  2. 設置?Editor: Tab Size?和?Editor: Detect Indentation

?4. 使用 ESLint 自動修復

通過命令行修復縮進問題(需確保?indent?規則已啟用):

eslint --fix your-file.js  # 自動修復縮進?:ml-citation{ref="5,6" data="citationList"}
?注意事項:
  1. 配置文件優先級?:

    • 項目根目錄的?.eslintrc.js?優先級高于全局配置,確保修改正確的文件?。
    • 若項目使用?vue?框架,需檢查?vue/script-indent?等插件規則是否沖突?。
  2. ?與 Prettier 等工具沖突?:

    • 若同時使用 Prettier,需在?.prettierrc?中配置?"tabWidth": 2,與 ESLint 規則保持一致?67。
  3. ?行內禁用規則?:
    可在特定代碼段跳過縮進檢查:

/* eslint-disable indent */
function demo() {console.log("test");  // 臨時允許 4 空格縮進
}
/* eslint-enable indent */

14、 'Unexpected template string expression'——? 使用了不必要的模板字符串表達式

(1)模板字符串未使用反引號?:使用單引號或雙引號包裹模板字符串,導致?${}?表達式被 ESLint 識別為錯誤語法?

// 錯誤示例(單引號)
const message = 'Hello, ${name}';  
// 正確示例(反引號)
const message = `Hello, ${name}`;  

(2)未閉合的反引號?:模板字符串缺少閉合的反引號,導致語法解析失敗?

// 錯誤示例(未閉合)
const message = `Hello, World;
// 正確示例
const message = `Hello, World`;

(3)表達式語法錯誤?:模板字符串中的?${}?內變量未定義或存在語法問題?

// 錯誤示例(變量未定義)
const text = `Value: ${undeclaredVar}`;  
// 正確示例(變量已聲明)
const declaredVar = 100;
const text = `Value: ${declaredVar}`;  

15、'"XXX" is never reassigned. Use 'const'' ——? 此錯誤由 ESLint 的?prefer-const?規則觸發,表示變量?XXX?在代碼中聲明為?let?或?var,但從未被重新賦值。ESLint 建議改用?const?聲明,以提高代碼可讀性和安全性(const?聲明后不可重新賦值)?

// 錯誤示例
let name = "Alice";  // 未重新賦值,卻使用 let
console.log(name);// 正確示例
const name = "Alice";  // 使用 const 聲明
console.log(name);

16、 'Unexpected side effect in "submitParams" computed property' —— 表示在計算屬性?submitParams?中進行了?副作用操作?(如修改?data?變量、操作 DOM 或執行異步任務),而計算屬性應僅用于?純計算邏輯?(僅返回依賴數據的計算結果)

// 錯誤示例:在計算屬性中修改 data 變量
computed: {submitParams() {this.selectedValue = 100;  // 副作用操作(修改 data 變量)return this.value * 2;}
}

??解決方案

?1. 將副作用操作移至?watch?或?methods
若需在數據變化時觸發操作(如賦值、更新 DOM),使用?watch?替代?computed
// 正確示例:用 watch 監聽變化
data() {return { selectedValue: 0 };
},
computed: {submitParams() {return this.value * 2;  // 僅返回計算結果}
},
watch: {submitParams(newVal) {this.selectedValue = newVal;  // 副作用操作移至 watch}
}
?2. 避免在計算屬性中修改?data?變量

確保?computed?僅依賴其他數據并返回值,不直接修改狀態?

// 錯誤:在 computed 中修改 data
computed: {submitParams() {this.list.push(1);  // 修改 data 數組return this.list;}
}// 正確:返回新數組但不修改原數據
computed: {submitParams() {return [...this.list, 1];  // 返回新數組}
}
?注意事項

?1、計算屬性的設計原則?

  • 若需響應數據變化并執行復雜邏輯,優先使用?watch?或?methods?56。
  • 計算屬性應為?純函數?,僅根據依賴項返回計算結果,避免修改外部狀態或觸發異步操作?37。

2?、與?watch?的區別?

  • computed:適用于同步計算,依賴緩存優化性能。
  • watch:適用于異步操作或需要執行副作用的場景?

17、 'Identifier 'col_names' is not in camel case' —— 沒有使用駝峰方式命名

      // 修改前const col_names = ["id", "name"];// 修改后const colNames = ["id", "name"];

18、'Unnecessary use of conditional expression for default assignment' —— 默認賦值不必要地使用條件表達式

?(1) 在 JavaScript 中,使用條件表達式在兩個布爾值之間進行選擇,而不是使用將測試轉換為布爾值,這是一個常見的錯誤

// Bad
const isYes = answer === 1 ? true : false;// Good
const isYes = answer === 1;// Bad
const isNo = answer === 1 ? false : true;// Good
const isNo = answer !== 1;

(2) 另一個常見錯誤是將單個變量同時用作條件測試和結果。在這種情況下,可以使用 logical 來提供相同的功能

// Bad
foo(bar ? bar : 1);// Good
foo(bar || 1);

(3)當存在更簡單的替代方案時,此規則不允許使用三元運算符

//此規則的錯誤代碼示例
/*eslint no-unneeded-ternary: "error"*/const a = x === 2 ? true : false;const b = x ? true : false;//此規則的正確代碼示例/*eslint no-unneeded-ternary: "error"*/const a = x === 2 ? "Yes" : "No";const b = x !== false;const c = x ? "Yes" : "No";const d = x ? y : x;f(x ? x : 1); // default assignment - would be disallowed if defaultAssignment option set to false. See option details below.

官方地址:no-unneeded-ternary - ESLint - 可插拔的 JavaScript Linter

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/75884.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/75884.shtml
英文地址,請注明出處:http://en.pswp.cn/web/75884.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Windows進行磁盤分區/擴容

Windows進行磁盤分區/擴容 導航 文章目錄 Windows進行磁盤分區/擴容導航分區教程壓縮卷教程 用Windows自帶的磁盤管理進行分區/擴容,但有個東西需要說明下是: 物理特性限制 磁盤分區的物理特性決定了擴容操作的方向。在磁盤上,數據是線性存儲…

獲取類路徑

分析 String pathThread.currentThread().getContextClassLoader().getResource("log").getPath(); 這行代碼用于獲取類路徑(classpath)下名為"log"的資源的文件系統路徑,我來詳細解析它的執行過程和潛在問題: 1. 代碼分解解析 j…

安裝fvm可以讓電腦同時管理多個版本的flutter、flutter常用命令、vscode連接模擬器

打開 PowerShellfvm安裝 dart pub global activate fvm安裝完成后,如果顯示FVM無法識別,那么需要去添加環境變量path添加這個:C:\Users\Administrator\AppData\Local\Pub\Cache\bin 常用命令 fvm releases 查看用戶可以裝的flutter版本fvm l…

Kaggle-Disaster Tweets-(二分類+NLP+模型融合)

Disaster Tweets 題意: 就是給出一個dataframe包含text這一列代表著文本,文本會有一些詞,問對于每條記錄中的text是真關于災難的還是假關于災難的。 比如我們說今天作業真多,這真是一場災難。實際上這個災難只是我們調侃而言的。…

Flutter 2025 Roadmap

2025 這個路線圖是有抱負的。它主要代表了我們這些在谷歌工作的人收集的內容。到目前為止,非Google貢獻者的數量超過了谷歌雇傭的貢獻者,所以這并不是一個詳盡的列表,列出了我們希望今年Flutter能夠出現的所有令人興奮的新事物!在…

如何通過API接口獲取淘寶商品價格?實操講解

要通過API接口獲取淘寶商品價格,需使用淘寶開放平臺(Taobao Open Platform, TOP)提供的商品詳情API(如taobao.item.get或taobao.item_get)。以下是完整的實操步驟: 一、前期準備 注冊淘寶開放平臺賬號 訪問…

按鍵精靈安卓/ios腳本輔助工具開發教程:如何把界面配置保存到服務器

在使用按鍵精靈工具輔助的時候,多配置的情況下,如果保存現有的配置,并且讀取,尤其是游戲中多種任務并行情況下,更是需要界面進行保存,簡單分享來自紫貓插件的配置保存服務器寫法。 界面例子: …

DP34 【模板】前綴和 -- 前綴和

目錄 一&#xff1a;題目 二&#xff1a;算法原理 三&#xff1a;代碼實現 一&#xff1a;題目 題目鏈接&#xff1a;【模板】前綴和_牛客題霸_牛客網 二&#xff1a;算法原理 三&#xff1a;代碼實現 #include <iostream> #include <vector> using namespac…

關于我的服務器

最近我買了臺騰訊云服務器&#xff0c;然后新手小白只會用寶塔。。。 安裝完之后默認的端口是8888&#xff0c;打開面板就會提示我有風險。然后 我改了端口之后&#xff0c;怎么都打不開。 于是 學到了幾句命令可以使用&#xff1a; //查看端口是否已經修改成功 cat www/se…

機器學習常用算法總結

1. 概述 機器學習的定義是對于某類任務T和性能度量P&#xff0c;如果一個計算機程序在T上其性能P隨著經驗E而自我完善&#xff0c;那么我們就稱這個系統從經驗E中學習&#xff0c;機器學習是人工智能的一種方法&#xff0c;它通過在大量數據中學習隱藏的規則&#xff0c;模式和…

ns-3中UDP飽和流發包時間間隔設置最合理值

ns3的官方手冊很全&#xff0c;相關書籍也是有的&#xff0c;官網先貼在這里&#xff1a; ns-3 | a discrete-event network simulator for internet systemsa discrete-event network simulator for internet systemshttps://www.nsnam.org/相關的腳本介紹也都有一些&#xf…

Windsurf代碼依賴檢查導入

目錄 1. 在全局配置中根據需求設置檢查的文件&#xff0c;以python為例 2. 執行命令生成requirements.txt文件&#xff0c;此操作可以將當前代碼所需的依賴全部寫入 3. 在Cascade對話窗口輸入detect-dependencies查詢 4. 根據查詢出來的結果優化requirements.txt&#xff0c;可…

復變函數摘記3

復變函數摘記3 5. 留數5.1 可去奇點、極點、本性奇點5.2 零點與極點的關系5.3 在無窮遠點處的情形5.4 留數 5. 留數 \quad 如果函數 f ( z ) f(z) f(z) 在 z 0 z_0 z0? 及 z 0 z_0 z0? 的鄰域內處處可導&#xff0c;那么稱 f ( z ) f(z) f(z) 在點 z 0 z_0 z0? 處解析。…

vscode格式化為什么失效?自動保存和格式化(Prettier - Code formatter,vue-format)

vscode自動格式化保存最終配置 博主找了好多的插件&#xff0c;也跟著教程配置了很多&#xff0c;結果還是沒有辦法格式化&#xff0c;最終發現了一個隱藏的小齒輪&#xff0c;配置完后就生效了 關鍵步驟 關鍵配置 一定要點小齒輪&#xff01;&#xff01;&#xff01; 這個小…

Framer Motion簡介

Framer Motion 是什么&#xff1f; Framer Motion 是一個 用于 React 的現代動畫庫&#xff0c;專為創建流暢、高性能且富有表現力的動畫而設計。它不僅適合簡單的 UI 動效&#xff0c;也能優雅地實現復雜的動畫編排與手勢交互。 &#x1f680; 為什么選擇 Framer Motion&…

多種方案對比實現 Kaggle 比賽介紹進行行業分類

Kaggle 平臺匯集了大量來自不同行業的數據科學競賽&#xff0c;但這些比賽的標題或簡介往往表述多樣、不易直接歸類。無論是做項目歸檔、行業研究&#xff0c;還是搭建競賽推薦系統&#xff0c;都需要一個可靠的方法來將比賽自動歸入對應行業標簽。 本教程提供使用 HuggingFac…

Android Jni(二)加載調用第三方 so 庫

文章目錄 Android Jni&#xff08;二&#xff09;加載調用第三方 so 庫前置知識CPU架構 ABI 基本步驟1、將第三方 SO 庫文件放入項目中的正確位置&#xff1a;2. 創建 JNI 接口3. 實現 JNI 層代碼4、配置 CMake 常見問題解決1、UnsatisfiedLinkError&#xff1a;2、函數找不到&…

服務器本地搭建

socket函數 它用于創建一個新的套接字&#xff08;socket&#xff09;。 函數原型 #include <sys/socket.h> int socket(int domain, int type, int protocol);參數解釋 domain&#xff1a;它指定了通信所使用的協議族&#xff0c;常見的取值如下&#xff1a; AF_INET…

MIP-Splatting:全流程配置與自制數據集測試【ubuntu20.04】【2025最新版】

一、引言 在計算機視覺和神經渲染領域&#xff0c;3D場景重建與渲染一直是熱門研究方向。近期&#xff0c;3D高斯散射&#xff08;3D Gaussian Splatting&#xff09;因其高效的渲染速度和優秀的視覺質量而受到廣泛關注。然而&#xff0c;當處理大型復雜場景時&#xff0c;這種…

Redis 高可用集群搭建與優化實踐

在分布式系統中,緩存技術用于提升性能和響應速度。 Redis 作為一款高性能的鍵值存儲系統,廣泛應用于緩存、消息隊列和會話管理等場景。隨著業務規模的擴大,單機 Redis 的性能和可用性逐漸無法滿足需求。 因此,搭建高可用的 Redis 集群可以解決這一問題。我將詳細介紹 Red…