找不到模块“./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
}
]
})
我有一个基于 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
}
]
})