我在Vue类组件中使用props .props 在构造函数中定义,没有值.这可以很好地编译和工作,但自从最新的VS Code/TSLint更新以来,我得到了以下警告:

属性"tag"没有初始值设定项,并且在构造函数中没有明确指定.

Vue类组件

export default class Browser extends Vue {
  @Prop({default: '', required:false})
  tag: string

  created(){
     console.log("the tag prop is " + this.tag)
  }
}

如果我指定了它,我会收到Vue警告,您不应该在子组件中操纵props .

[Vue warn]:避免直接改变props ,因为每当父组件重新渲染时,该值将被覆盖

既然这似乎主要是一个起毛问题,有没有办法禁用它?还是我的代码真的错了?

推荐答案

更新日期2020/06/15

我当时给出的最初答案是断断续续的,而不是正确的答案.This答案是正确的方法;在props 名称后面加一个!.

原始答案

我也有同样的问题.我通过向tsconfig添加"strictPropertyInitialization": false,来修复它.json的编译器选项.

{
    "compilerOptions": {
        "outDir": "./built/",
        "sourceMap": true,
        "strict": true,
        "noImplicitReturns": true,
        "experimentalDecorators": true,
        "module": "es2015",
        "moduleResolution": "node",
        "target": "es5",
        "strictPropertyInitialization": false,
        "lib": [
            "es5",
            "es2015",
            "dom",
            "ScriptHost"
        ]
    },
    "include": [
        "./src/**/*"
    ]
}

Vue.js相关问答推荐

为什么在Vue.js中修改非react 性似乎是react 性的?

VUE:带自定义组件的数组输入绑定

如何在Vue3中使用vuechartjs 5.2从父组件更新图表

将 v-calendar 与以时间和日期格式出现的事件一起使用

在 Vue.js 2.6 的 Javascript 中访问 的内容

如何通过 setup() 发出多个参数?

VueJS CKeditor5 上传图片

VueJS 将 HTML 打印到页面

eslint – 如何知道 defined定义规则的位置

将 props 传递给 Vue 组件中的元素属性

如何从 .vue 文件中导出多个对象

即使在客户端设置 Access-Control-Allow-Origin 或其他 Access-Control-Allow-* 标头后也出现 CORS 错误

vue 在 v-model 之后执行 @click

Vue 3:模块 '"../../node_modules/vue/dist/vue"' 提示

vue 3 使用 Vuex 和路由的服务器端渲染

Vue.js webpack:如何获取目录中的文件列表?

如何在 VeeValidate 中自定义错误信息(字段名称)?

如何在 vue3 中的setup方法中发出事件?

为什么不能在 vue 模板中使用窗口?

使用 vue.js 获取调用元素