Nuxt $ route не существует на Vue - PullRequest
0 голосов
/ 21 января 2020

Эй,

У меня странная проблема. У меня есть приложение Nuxt с Typescript. В крючке created я console.log this.$route. Этот журнал работает. А также считывание параметров с маршрута.

НО в консоли возникает ошибка при создании приложения:

Свойство $route не существует для типа SomeClass.

Вот мой класс:

import Vue from'vue'
import Component from 'vue-class-component'

@Component
export default class SomeClass extends Vue {
  public id!: string

  created() {
    console.log('this:', this)
    this.id = this.$route.params.id
  }
}

console.log отлично работает и показывает правильный маршрут со своими параметрами. Как мне избавиться от этой ошибки?

Вот мой tsconfig. json

{
  "compilerOptions": {
    "target": "esnext",
    "module": "esnext",
    "moduleResolution": "node",
    "lib": [
      "esnext",
      "esnext.asynciterable",
      "dom"
    ],
    "esModuleInterop": true,
    "experimentalDecorators": true,
    "skipLibCheck": true,
    "allowJs": true,
    "sourceMap": true,
    "strict": true,
    "noImplicitAny": false,
    "noEmit": true,
    "baseUrl": ".",
    "paths": {
      "~/*": [
        "./*"
      ],
      "@/*": [
        "./*"
      ]
    },
    "types": [
      "@types/node",
      "@nuxt/vue-app",
      "element-ui/types"
    ]
  }
}

1 Ответ

0 голосов
/ 21 января 2020

Хорошо, я получил это благодаря @aBiscuit. Это было отсутствующее определение типа в tsconfig. Под "типами" просто добавьте @ nuxt / types.

Это мой новый и работающий tsconfig

{
  "compilerOptions": {
    "target": "esnext",
    "module": "esnext",
    "moduleResolution": "node",
    "lib": [
      "esnext",
      "esnext.asynciterable",
      "dom"
    ],
    "esModuleInterop": true,
    "experimentalDecorators": true,
    "skipLibCheck": true,
    "allowJs": true,
    "sourceMap": true,
    "strict": true,
    "noImplicitAny": false,
    "noEmit": true,
    "baseUrl": ".",
    "paths": {
      "~/*": [
        "./*"
      ],
      "@/*": [
        "./*"
      ]
    },
    "types": [
      "@types/node",
      "@nuxt/vue-app",
      "element-ui/types"
    ]
  }
}
...