我的组件有无效/未定义的道具"selectedColumns“,我的Vscodium没有显示错误。如果我在那里键入,就像垃圾一样,它仍然没有显示错误或警告。看起来像是皮线问题或vscodium工作区缺少一些设置。但我不确定真正的原因。
注释:,我确信更漂亮、更精确/不解析--错误正确工作。
Vue组件:
<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:
{
"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:
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中显示。
发布于 2021-10-01 11:06:40
这些改变应该是为了-
Settings.json
"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这两个包都必须有这些版本。
"eslint": "^6.8.0",
"eslint-plugin-vue": "^7.18.0",我无法确定它突然发生的实际原因,但这就是我现在有的解决办法。
https://stackoverflow.com/questions/69360740
复制相似问题