找不到模块“./router”的声明文件

Could not find a declaration file for module './router'

我有一个基于 TypeScript 的 Vue.js 项目,使用 Visual Studio 2017 作为我的 IDE。

这是 'router/index.js' 文件:

import Vue from 'vue'
import Router from 'vue-router'
import Home from '@/components/Home'
import TimeSheet from '@/components/TimeSheet'

Vue.use(Router)

export default new Router({
    routes: [
        {
            path: '/',
            redirect: {
                name: "Home"
            }
        },
        {
            path: '/home',
            name: 'Home',
            component: Home
        },
        {
            path: '/timesheet',
            name: 'TimeSheet',
            component: TimeSheet
        }
    ]
})

这是我的 'main.ts' 文件的内容:

import Vue from 'vue';
import App from './App.vue';

Vue.config.productionTip = true;

import router from './router'

new Vue({
    render: h => h(App),
    router
}).$mount('#app')

这一行:

import router from './router'

我得到:

vue.js could not find a declaration file for module './router'

我看到很多关于此错误的帖子,但到目前为止 none 已经提供了解决方案。项目布局如下:

编辑:

tsconfig.json

的内容
{
  "compilerOptions": {
    "noEmit": true,
    "target": "es5",
    "module": "esnext",
    "strict": true,
    "jsx": "preserve",
    "moduleResolution": "node",
    "experimentalDecorators": true,
    "emitDecoratorMetadata": true,
    "allowSyntheticDefaultImports": true,
    "sourceMap": true,
    "baseUrl": ".",
    "types": [
      "node"
    ],
    "paths": {
      "@/*": [
        "src/*"
      ]
    }
  },
  "include": [
    "src/**/*.ts",
    "src/**/*.tsx",
    "src/**/*.vue",
    "tests/**/*.ts",
    "tests/**/*.tsx"
  ],
  "exclude": [
    "node_modules"
  ]
}

我通过将文件 router/index.js 更改为 index.ts 来实现此功能,然后我将文件的内容从...

更改为
import Vue from 'vue'
import Router from 'vue-router'
import Home from '@/components/Home'
import TimeSheet from '@/components/TimeSheet'

Vue.use(Router)

export default new Router({
    routes: [
        {
            path: '/',
            redirect: {
                name: "Home"
            }
        },
        {
            path: '/home',
            name: 'Home',
            component: Home
        },
        {
            path: '/timesheet',
            name: 'TimeSheet',
            component: TimeSheet
        }
    ]
})

到...

import Vue from 'vue'
import Router from 'vue-router'
import Home from '@/components/Home.vue'
import TimeSheet from '@/components/TimeSheet.vue'

Vue.use(Router)

export default new Router({
    routes: [
        {
            path: '/',
            redirect: {
                name: "Home"
            }
        },
        {
            path: '/home',
            name: 'Home',
            component: Home
        },
        {
            path: '/timesheet',
            name: 'TimeSheet',
            component: TimeSheet
        }
    ]
})