vue中使用typescript报ts2339错误

业务背景

  • 强行学习typesciprt
  • 在私活vue nuxt里面边学边用
  • 以前没写过ts
  • 接触过c#

遇到的困难

  • tslint老是报错
  • 但实际并不影响代码运行

示例代码

export default {
  data: () => ({
    name: {
      value: '',
      error: '',
    }, // 用户名
    ...
 methods: {
    // 验证用户名
    submit() {
      if (!reg.isUserName(this.name.value)) {
        this.name.error = '用户名输入有误';
        return;

报错内容

clipboard.png

我的问题

  • 为什么会报这个错?(应该跟this作用域有关,但在tslint下怎么判断的?)
  • 怎么写不让它报错?

排除的方法

  • 禁用这条tslint规则很明显不优雅
  • 网上有提到一个方法使用[]提取属性,是可以,但是写起来太麻烦了.并且不适用于vuex
阅读 8.3k
1 个回答

建议你可以看一下TS官方文档,TypeScript的核心原则之一是对值所具有的结构进行类型检查,这里你应该是没有定义类型~

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题