ESLint报错SvelteKit的App命名空间未定义,如何解决?
解决ESLint报
'App' is not defined错误的方法 在SvelteKit项目中,你已经在app.d.ts里全局声明了App命名空间,但ESLint仍触发no-undef错误,原因是ESLint未识别到这个全局类型定义。以下是几种有效的解决方式:
方法1:在ESLint配置中声明App为全局变量
修改项目的ESLint配置文件(如.eslintrc.cjs),在globals区块中添加App并标记为只读:
module.exports = { // 其他现有配置 globals: { App: "readonly" } };
方法2:在组件中添加类型引用注释
如果不想修改全局ESLint配置,可在使用App.Error的组件脚本顶部添加类型引用注释,指定app.d.ts的路径:
<script lang="ts"> /// <reference path="../app.d.ts" /> export let error: App.Error; </script>
注意:路径需根据组件与app.d.ts的实际相对位置调整。
方法3:确保ESLint正确解析TypeScript类型定义
- 检查
tsconfig.json的include数组,确认包含app.d.ts:
{ "include": ["src/**/*.d.ts", "src/**/*.js", "src/**/*.ts", "src/**/*.svelte"] }
- 在ESLint配置中启用TypeScript解析器,并关联你的
tsconfig.json:
module.exports = { parser: "@typescript-eslint/parser", parserOptions: { tsconfigRootDir: __dirname, project: ["./tsconfig.json"] }, // 其他现有配置 };
内容的提问来源于stack exchange,提问作者Kevin Renskers
相关产品推荐
相关产品推荐

