首页 > 解决方案 > Vue 和 TS 忽略 shims 文件

问题描述

我正在开发一个基于 VUE 和 TS 的项目,看起来 shims 文件不起作用。该项目充斥着无限的错误,例如

Property '$store' does not exist on type 'Dashboard'.
Property "$router" does not exist on type 'Dashboard'.

我的商店和路由器运行良好,但编译器不同意这一点,这就是我决定适应 TS 并添加一些 shims.d.ts 文件的原因。

垫片文件看起来像这样

import { VueRouter } from "vue-router/types/router";
import { Route } from "vue-router";

declare module "vue/types/vue" {
  interface Vue {
    $router: VueRouter;
    $route: Route;
  }
}
而且它不起作用!类型“仪表板”上不存在属性“$router”。

{
  "compilerOptions": {
    "target": "es5",
    "module": "esnext",
    "strict": true,
    "jsx": "preserve",
    "importHelpers": true,
    "moduleResolution": "node",
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "experimentalDecorators": true,
    "sourceMap": true,
    "noImplicitThis": false,
    "downlevelIteration": true,
    "baseUrl": ".",
    "typeRoots": [
        "./node_modules/@types",
      "./src/@types/",
    ],
    "types": [
      "webpack-env"
    ],
    "paths": {
      "@/*": [
        "src/*"
      ]
    },
    "lib": [
      "esnext",
      "dom",
      "dom.iterable",
      "scripthost"
    ]
  },
  "include": [
    "src/**/*.ts",
    "src/**/*.tsx",
    "src/**/*.vue",
    "tests/**/*.ts",
    "tests/**/*.tsx"
  ],
  "exclude": [
    "node_modules"
  ]
}

垫片文件位于 project_name/src/@types/ 文件夹中。

标签: typescriptvue.jsvuejs2

解决方案


推荐阅读