You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Svelte+Vite项目中无法导入同级目录TypeScript接口

Svelte项目TypeScript接口导入失败排查与解决

问题详情

在Svelte项目中导入TypeScript接口时,IDE显示导入正常,但服务器返回报错。接口文件路径为src/interface/EnabledSignUpArgs.interface.ts,代码如下:

export interface EnabledSignupArgs {
  email: string
  username: string
  password: string
  confirmedPassword: string
  agreedToTOS: boolean
  agreedToPrivacyPolicy: boolean
}

// 也尝试添加过默认导出
export default EnabledSignupArgs

在两个不同文件中分别使用相对路径导入:

import { EnabledSignupArgs } from "../../interface/EnabledSignUpArgs.interface"
import { EnabledSignupArgs } from "../interface/EnabledSignUpArgs.interface"

服务器返回的错误提示:

请求的模块'/src/interface/EnabledSignUpArgs.interface.ts'未提供名为EnabledSignupArgs的导出

已尝试的操作:

  • 重启开发服务器
  • 将接口文件移动到其他目录
  • 添加默认导出

当前tsconfig.json配置:

{
  "extends": "./.svelte-kit/tsconfig.json",
  "compilerOptions": {
    "moduleResolution": "node",
    "module": "es2020",
    "lib": ["es2020", "DOM"],
    "target": "es2020",
    "importsNotUsedAsValues": "preserve",
    "isolatedModules": false,
    "resolveJsonModule": true,
    "sourceMap": true,
    "esModuleInterop": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true,
    "baseUrl": ".",
    "allowJs": true,
    "checkJs": true,
    "paths": {
      "$components/*": ["src/lib/components/*"],
      "$styles/*": ["src/lib/styles/*"],
      "$utils/*": ["src/lib/utils/*"],
      "$src/*": ["src/*"],
      "$lib": ["src/lib"],
      "$lib/*": ["src/lib/*"]
    },
    "types": ["jest"]
  },
  "include": ["src/**/*.d.ts", "src/**/*.js", "src/**/*.ts", "src/**/*.svelte"]
}

解决方法

1. 使用配置好的绝对路径导入

tsconfig.json中已配置$src/*映射到src/*,改用绝对路径导入可避免相对路径层级错误:

import { EnabledSignupArgs } from '$src/interface/EnabledSignUpArgs.interface'

2. 清理Svelte Kit缓存并重启

仅重启服务器可能无法清理缓存,需删除.svelte-kit目录后重新启动:

rm -rf .svelte-kit
npm run dev

3. 调整TypeScript配置

将isolatedModules设为true,这是Svelte Kit推荐的配置,确保编译器正确处理模块:
在tsconfig.json的compilerOptions中修改:

"isolatedModules": true

4. 确认导出与导入的一致性

检查导出的接口名EnabledSignupArgs与导入时的名称完全一致,同时确保文件名EnabledSignUpArgs.interface.ts在导入路径中拼写正确(注意SignUp的大小写)。

内容的提问来源于stack exchange,提问作者plutownium

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 08:22:19