TypeScript导入显式路径模块时如何复用现有@types类型声明
解决方案
方法1:新增全局类型声明文件(最通用)
- 在项目源码根目录(一般是src文件夹下)新建一个类型声明文件,比如命名为
svgo.d.ts,写入以下内容:
declare module 'svgo/dist/svgo.browser' { export * from 'svgo' }
- 确认你的
tsconfig.json的include配置项已经包含了该声明文件,示例配置如下:
{ "include": ["src/**/*.ts", "src/**/*.d.ts"] }
- 重启IDE的TypeScript语言服务即可生效,比如VSCode可以按快捷键
Ctrl+Shift+P,选择「TypeScript: 重启TS服务器」。
方法2:通过tsconfig路径映射重定向
如果你的项目允许修改TS路径别名配置,也可以直接在tsconfig.json的compilerOptions.paths里添加映射:
{ "compilerOptions": { "paths": { "svgo/dist/svgo.browser": ["node_modules/@types/svgo/index.d.ts"] } } }
注意:该方法仅会处理TS的类型识别,不会影响webpack的实际打包路径,和你原来的运行时逻辑完全兼容。
内容的提问来源于stack exchange,提问作者Ross Moody
相关产品推荐
相关产品推荐

