SvelteKit TypeScript项目导入类型时报Expected "from" but found "{"错误如何解决?
这个错误的本质是Svelte编译器未识别当前代码为TypeScript语法,将import type当作原生ES模块导入语法解析,而原生ES规范中没有import type语法,因此解析到type后的{时就会抛出找不到from关键字的报错。
你可以按照以下步骤逐一排查解决:
- 检查Svelte相关依赖版本:确保
svelte版本≥3.44.0,@sveltejs/kit版本≥1.0.0正式版,版本过低直接升级对应依赖即可。 - 检查
.svelte文件的script标签属性:确认lang属性引号闭合正确、无多余转义字符,正确写法参考:<script context="module" lang="ts"> import type { ProductType } from '../types'; </script> - 检查根目录
tsconfig.json配置:确认已继承SvelteKit内置的ts配置,且开启了isolatedModules选项,参考配置如下:{ "extends": "./.svelte-kit/tsconfig.json", "compilerOptions": { "isolatedModules": true, "moduleResolution": "bundler" } } - 替换类型导入写法:改用TypeScript 4.5+支持的内联类型导入语法,兼容性更好:
import { type ProductType } from '../types'; - 清除缓存重启服务:删除项目下的
.svelte-kit、node_modules/.vite缓存文件夹,再重新执行开发命令启动服务,无明确诱因的突发报错大多可以通过该方法解决。
内容的提问来源于stack exchange,提问作者lucaplaysthenoob
相关产品推荐
相关产品推荐

