Typescript 找不到声明文件解决方法
我遇到的是 pinia-plugin-persist 找不到声明文件
1. 创建类型声明文件
首先,手动创建一个类型声明文件。在你的 src 目录下创建一个 types 文件夹,并在其中创建一个 pinia-plugin-persist.d.ts 文件,内容如下:
1
2
3
4
5
declare module 'pinia-plugin-persist' {
import { PiniaPlugin } from 'pinia';
const piniaPluginPersist: PiniaPlugin;
export default piniaPluginPersist;
}
2. 更新 tsconfig.json
然后,在你的 tsconfig.json 文件中添加类型定义文件的路径。根据插件中的建议,应该在 compilerOptions 中添加 types 属性并将 pinia-plugin-persist 加入到数组中。确保你的 tsconfig.json 文件看起来像这样:
1
2
3
4
5
6
7
8
9
{
"compilerOptions": {
"typeRoots": ["./node_modules/@types", "./src/types"],
"types": [
"pinia-plugin-persist"
],
// 其他的配置项...
}
}
完整示例
你的项目结构可能类似于以下内容:
1
2
3
4
5
6
7
8
9
my-project/
├── src/
│ ├── types/
│ │ └── pinia-plugin-persist.d.ts
│ ├── main.ts
│ └── ...
├── tsconfig.json
├── package.json
└── ...
你的 tsconfig.json 文件的完整示例如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{
"compilerOptions": {
"target": "esnext",
"module": "esnext",
"moduleResolution": "node",
"strict": true,
"jsx": "preserve",
"sourceMap": true,
"baseUrl": ".",
"paths": {
"@/*": ["src/*"]
},
"typeRoots": ["./node_modules/@types", "./src/types"],
"types": [
"pinia-plugin-persist"
]
},
"include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"]
}
3. 使用 pinia-plugin-persist
在你的代码中,你可以像之前那样使用 pinia-plugin-persist,例如在 main.ts 文件中:
1
2
3
4
5
6
7
8
9
10
11
12
13
import { createApp } from 'vue';
import { createPinia } from 'pinia';
import App from './App.vue';
// @ts-ignore
import piniaPluginPersist from 'pinia-plugin-persist';
const app = createApp(App);
const pinia = createPinia();
pinia.use(piniaPluginPersist);
app.use(pinia);
app.mount('#app');
这样配置之后,TypeScript 应该能够正确识别 pinia-plugin-persist,并且不再报错。如果还有问题,请检查你的 tsconfig.json 配置和类型声明文件的路径是否正确。
本文由作者按照 CC BY 4.0 进行授权