我在学习使用vue3和ts,但是当我写完全局声明文件的时候,在ts文件或者.vue文件使用该类型时都提示没有该类型,为什么?
具体信息:
我在src文件夹下的types文件夹定义全局声明文件:
route.d.ts
import type { RouteRecordRaw } from 'vue-router';
interface amiaRoute extends Omit<RouteRecordRaw, 'meta'> {
meta: {
title?: string;
icon?: string;
}
}
我的ts配置文件:
{
"compilerOptions": {
"baseUrl": "./",
"paths": {
"@/*": [
"src/*" // 解决vite配置别名,ts不识别的问题
]
}
},
"files": [],
"references": [
{
"path": "./tsconfig.node.json"
},
{
"path": "./tsconfig.app.json"
},
{
"path": "./tsconfig.vitest.json"
}
],
"include": [
"src/**/*.ts",
"src/**/*.d.ts",
"src/**/*.vue",
],
"exclude": ["node_modules", "dist"]
}
问题解决了,typescript的声明文件如果使用了导入导出语法,ts会将它处理成一个普通模块,而不是一个声明文件