• eslint语法报错解决


    今天将之前一个项目加入了eslint,发现很多变报错,但是反复检查自己代码是没有错误的,根据报错信息可知是某些api在eslint语法中使用不规范导致,大概总结如下:

    1.setup中接收props

    报错:Getting a value from the props in root scope of setup() will cause the value to lose reactivity

    之前写法:

     setup(props) {
        const { option } = props
     }
    
    • 1
    • 2
    • 3

    eslint写法

    setup(props) {
        const { option } = {
        	...props
        }
     }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2.遍历操作某个数组(forEach代替map),map要求有返回值

    报错:Array.prototype.map() expects a return value from arrow function array-callback-return
    之前写法:

    row.childrens.map((pit) => {
      pit.childs.map((cit, ci) => {
        if (cit.n_id === item.n_id) {
          pit.childs.splice(ci, 1)
        }
      })
    })
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    eslint写法:

    row.childrens.forEach((pit) => {
      pit.childs.forEach((cit, ci) => {
        if (cit.n_id === item.n_id) {
          pit.childs.splice(ci, 1)
        }
      })
    })
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    3.空格修正

    之前项目可能在缩进上面不符合eslint语法,此时只需 npm run lint 对代码进行自动修正即可,之前项目拿到手里建议先npm run lint,之后在修改其他语法报错,这样你会发现语法报错会少很多,便于查找修改。

    4.解构赋值

    eslint中推荐解构赋值,部分需要使用结构赋值的方式拿到变量,如:
    之前写法:

    const data = props.data
    
    • 1

    eslint中写法

    const { data } = props
    
    • 1

    5.switch-case条件语句中加default

    在最后一个条件中加default

    之前写法:

    switch (sease) {
      case '1':
      case '2':
      case '3':
          console.log('春季')
          break;
      case '4':
      case '5':
      case '6':
         console.log('夏季')
         break;
      case '7':
      case '8':
      case '9':
         console.log('秋季')
         break;
      default:
      	console.log('冬季')
      	break;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    6.最后一个import导入后留空行

    报错:.Expected 1 empty line after import statement not followed by another import import/newline-after-import

    之前写法:

    import Vue from 'vue'
    import VueRouter from 'vue-router'
    Vue.use(VueRouter)
    
    • 1
    • 2
    • 3

    eslint写法:

    import Vue from 'vue'
    import VueRouter from 'vue-router'
    
    Vue.use(VueRouter)
    
    • 1
    • 2
    • 3
    • 4

    7.模板字符串代替拼接字符串

    报错:Unexpected string concatenation prefer-template

    之前写法:

    <p>{{info.day + '天'}}<p>
    
    • 1

    eslint写法:

    <p>{{`${info.day}`}}<p>
    
    • 1

    8.不使用for循环

    之前写法:

    for (let i = 0;i < arr.length; i++) {
    	console.log(arr[i])
    }
    
    • 1
    • 2
    • 3

    eslint写法:

    arr.forEach((item) => {
    	console.log(item)
    })
    
    • 1
    • 2
    • 3

    提示:本文图片等素材来源于网络,若有侵权,请发邮件至邮箱:810665436@qq.com联系笔者 删除。
    笔者:苦海

  • 相关阅读:
    【LIUNX】配置缓存DNS服务
    10道集合框架面试题(含解析),来看看你会多少
    微信小程序-起步
    【C语言】指针&数组
    制作一个简单的Chrome extensions并发布到应用商店
    git log 用法
    CMD命令混淆
    工业CT检测技术及工业CT基本组成
    Unity PlayerPrefs相关应用
    浅谈结构化数据、非结构化数据,关系数据库、非关系数据库
  • 原文地址:https://blog.csdn.net/weixin_46758988/article/details/126082498