Vue.js + Pinia:如何解决ESLint和TypeScript发现的问题?

3mpgtkmj  于 2023-11-21  发布在  Vue.js
关注(0)|答案(1)|浏览(188)

此问题在此处已有答案

ECMAScript 6 arrow function that returns an object(6个答案)
15天前关门了。
我是Vue.js + Pinia的新手。我想知道如何解决这些消息。
1.“state:"已定义但从未使用。
下面的代码是@/stores/user.ts

import { defineStore } from 'pinia'

export const useUserStore = defineStore('user', () => {
  state: () => {
    return {
      name: ''
    }
  }
})

字符串
x1c 0d1x的数据
1.属性“name”在类型“Store<“user”,{}>“上不存在
此文件是vue文件之一。

<script setup lang="ts">
import { RouterLink, RouterView } from 'vue-router'
import HelloWorld from '@/components/HelloWorld.vue'
import { useUserStore } from '@/stores/user';

const userStore = useUserStore()

</script>

<template>
  <header>
    < img alt="logo" class="logo" src="@/assets/logo.svg" width="125" height="125" />

    <div class="wrapper">
      <HelloWorld :msg="userStore.name" />

      <nav>
        <RouterLink to="/">Home</RouterLink>
      </nav>
    </div>
  </header>

  <RouterView />
</template>


xqk2d5yq

xqk2d5yq1#

这是JavaScript语法中的一个棘手问题--如果一个箭头函数有花括号,那么这些花括号将被解释为函数体。换句话说:

() => {
  state: () => {
    return {
      name: ''
    }
  }
}

字符串
类似于

function () {
  state: () => {
    return {
      name: ''
    }
  }
}


它的意思是“一个函数,其主体由一个labeled statement组成,声明了一个匿名箭头函数,但从不对它做任何事情。”
若要返回对象文字,请添加括号,以强制语法为表达式而不是函数体。

export const useUserStore = defineStore('user', () => ({
  state: () => {
    return {
      name: ''
    }
  }
}))

相关问题