我试图在Typescript中导出/导入接口,但我得到了这个错误,我不知道我在这里做错了什么
错误:请求的模块“/src/types/settings.ts”不提供名为“”的导出“
在我的types/settings.ts中,
export interface Settings {
activeUser: number
}
字符串
我像这样输入
import { Settings } from '@/types/settings'
型
下面是我的tsconfig.json
{
"compilerOptions": {
"target": "esnext",
"baseUrl": "./src/",
"useDefineForClassFields": true,
"module": "esnext",
"moduleResolution": "node",
"strict": true,
"jsx": "preserve",
"paths": {
"@/*": ["src/*"],
},
"sourceMap": true,
"resolveJsonModule": true,
"esModuleInterop": true,
"lib": ["esnext", "dom"],
"isolatedModules": false
},
"include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"]
}
型
我正在使用Vue/Vite与Typescript
3条答案
按热度按时间s4n0splo1#
奇怪的是,
npm run build
可以正常工作,但npm run dev
会抛出SyntaxError。我被迫使用
import type { ...
,因此也需要从vue
相同的触摸Ref
。已在GitHub上发布Vite issue 731的解决方法
xnifntxz2#
paths
中的错误是相对于baseUrl
解析的。试试这个:字符串
或者这个
型
pkmbmrz73#
很可能是导入接口而没有显式地将其标记为类型的问题。Vite要求isolatedModules为true,这反过来又要求以这种方式处理接口:
字符串
如果您正在使用类似于以下的桶文件(index.ts),请保持在中间:
型
你应该把它们转换成这样:
型
还是这样
型
另一个肮脏的选择是在tslog.json中将skipLibCheck设置为true,这将降低类型的严格性。