首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vue组件在VsCodium上没有显示错误或警告。

Vue组件在VsCodium上没有显示错误或警告。
EN

Stack Overflow用户
提问于 2021-09-28 11:18:18
回答 1查看 149关注 0票数 0

我的组件有无效/未定义的道具"selectedColumns“,我的Vscodium没有显示错误。如果我在那里键入,就像垃圾一样,它仍然没有显示错误或警告。看起来像是皮线问题或vscodium工作区缺少一些设置。但我不确定真正的原因。

注释:,我确信更漂亮、更精确/不解析--错误正确工作。

Vue组件:

代码语言:javascript
复制
<template>
  <div class="w-full">
    <div>
      <h1>Header</h1>

      <!-- ColToggle -->
      <div v-if="colToggle">
        <MultiSelect
          :modelValue="selectedColumns"
          :options="columns"
          optionLabel="header"
          @update:modelValue="onToggle"
          placeholder="Select Columns"
        />
      </div>
    </div>

    <DataTable
      :value="customers.data"
      responsiveLayout="scroll"
      showGridlines
      :paginator="pagination"
      :rows="rows"
      :rowsPerPageOptions="[10, 20, 50]"
    >
      <Column
        v-for="col of columns"
        :field="col.field"
        :header="col.header"
        :key="col.field"
        :sortable="col.sortable"
      ></Column>
    </DataTable>
  </div>
</template>

<script lang="ts">
import { defineComponent, PropType } from "vue"
import DataTable from "primevue/datatable"
import Column from "primevue/column"
import ColumnGroup from "primevue/columngroup"

// TestData
import customers from "@/assets/json/data.json"

interface ColumnField {
  /**
   * Set the field/value for the column
   */
  field: string
  /**
   * Set the header for the column
   */
  header: string
  /**
   * If columns is sortable
   */
  sortable?: string
}

export default defineComponent({
  name: "GridTable",
  component: { DataTable, Column, ColumnGroup },
  data() {
    return {
      customers,
    }
  },
  props: {
    colToggle: {
      type: Boolean,
      required: false,
      default: true,
    },
    pagination: {
      type: Boolean,
      required: false,
      default: true,
    },
    rows: {
      type: Number,
      required: false,
      default: 10,
    },
    rowsPerPageOptions: {
      type: Array,
      required: false,
      default() {
        return [10, 20, 50]
      },
    },
    columns: {
      type: Array as PropType<ColumnField[]>,
      required: true,
    },
    filter: {
      type: Object,
      required: false,
    },
  },
})
</script>

包json:

代码语言:javascript
复制
{
  "name": "Basic Project",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "lint": "vue-cli-service lint",
    "test": "jest",
    "test:verbose": "jest --verbose",
    "test:unit": "vue-cli-service test:unit",
    "storybook": "start-storybook -p 6006",
    "build-storybook": "build-storybook"
  },
  "dependencies": {
    "axios": "^0.21.4",
    "core-js": "^3.6.5",
    "primeflex": "^3.0.0",
    "primeicons": "^4.1.0",
    "primevue": "^3.7.1",
    "vue": "^3.0.0",
    "vue-i18n": "^9.1.7",
    "vue-router": "^4.0.0-0",
    "vuex": "^4.0.0-0",
    "vuex-persistedstate": "^4.0.0"
  },
  "devDependencies": {
    "@babel/core": "^7.14.6",
    "@storybook/addon-a11y": "^6.3.1",
    "@storybook/addon-actions": "^6.3.1",
    "@storybook/addon-essentials": "^6.3.1",
    "@storybook/addon-links": "^6.3.1",
    "@storybook/vue3": "^6.3.1",
    "@types/jest": "^24.0.19",
    "@typescript-eslint/eslint-plugin": "^4.18.0",
    "@typescript-eslint/parser": "^4.18.0",
    "@vue/cli-plugin-babel": "~4.5.0",
    "@vue/cli-plugin-eslint": "~4.5.0",
    "@vue/cli-plugin-router": "~4.5.0",
    "@vue/cli-plugin-typescript": "~4.5.0",
    "@vue/cli-plugin-unit-jest": "~4.5.0",
    "@vue/cli-plugin-vuex": "~4.5.0",
    "@vue/cli-service": "~4.5.0",
    "@vue/compiler-sfc": "^3.0.0",
    "@vue/eslint-config-prettier": "^6.0.0",
    "@vue/eslint-config-typescript": "^7.0.0",
    "@vue/test-utils": "^2.0.0-0",
    "babel-loader": "^8.2.2",
    "eslint": "^6.7.2",
    "eslint-plugin-prettier": "^3.3.1",
    "eslint-plugin-vue": "^7.14.0",
    "prettier": "^2.2.1",
    "sass": "^1.26.5",
    "sass-loader": "^8.0.2",
    "ts-jest": "^26.5.4",
    "typescript": "~4.1.5",
    "vue-jest": "^5.0.0-0",
    "vue-loader": "^16.2.0"
  }
}

.eslintrc.js:

代码语言:javascript
复制
module.exports = {
  root: true,
  env: {
    node: true,
  },
  extends: [
    "plugin:vue/vue3-essential",
    "eslint:recommended",
    "@vue/typescript/recommended",
    "@vue/prettier",
    "@vue/prettier/@typescript-eslint",
  ],
  parserOptions: {
    ecmaVersion: 2020,
  },
  rules: {
    "no-console": process.env.NODE_ENV === "production" ? "warn" : "off",
    "no-debugger": process.env.NODE_ENV === "production" ? "warn" : "off",
    semi: ["error", "never"],
    quotes: ["error", "double"],
    "no-unused-vars": "off",
    "no-undef-init": "off",
    "no-use-before-define": "off",
    "no-undef": ["off"],
    "no-nested-ternary": ["warn"],
    "no-shadow": ["warn"],
    "implicit-arrow-linebreak": 0,
    "import/no-unresolved": 0,
    "import/extensions": 0,
    "@typescript-eslint/no-unused-vars": ["error"],
  },
  overrides: [
    {
      files: [
        "**/__tests__/*.{j,t}s?(x)",
        "**/tests/unit/**/*.spec.{j,t}s?(x)",
        "**/src/**/*.spec.[jt]s?(x)",
      ],
      env: {
        jest: true,
      },
    },
  ],
}

编辑-1

即使在创建了一个普通/基本的Vue3类型记录项目之后,当我传递一个未定义的道具时,错误也不会在VsCodium中显示。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-01 11:06:40

这些改变应该是为了-

Settings.json

代码语言:javascript
复制
"i18n-ally.keystyle": "nested",
  "vetur.format.defaultFormatterOptions": {
    "js-beautify-html": {
      "wrap_attributes": "force-expand-multiline"
    },
    "prettyhtml": {
      "printWidth": 100,
      "singleQuote": false,
      "wrapAttributes": false,
      "sortAttributes": false
    }
  },
  "vetur.validation.templateProps": true,
  "vetur.experimental.templateInterpolationService": true

这两个包都必须有这些版本。

代码语言:javascript
复制
"eslint": "^6.8.0",
"eslint-plugin-vue": "^7.18.0",

我无法确定它突然发生的实际原因,但这就是我现在有的解决办法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69360740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档