Intellisense显示'typeof import "/path"',如何获取导入变量的智能提示?
问题描述
导入某些数据后,鼠标悬停在变量上时,编辑器显示typeof import "/some/path"而非具体变量列表,导致无法使用自动补全功能。
问题出现的流程:
- 文件夹内的文件包含命名导出,该文件夹的
index.ts通过export * from '.'导出所有内容 - 父文件夹的文件导入该
index.ts的所有内容,并作为变量导出 - 另一文件导入该变量并将其包含在导出对象中
- 顶层
index.ts导入该命名导出,此时悬停该变量无法看到具体变量列表
解决方案
1. 替换循环导出路径为明确导出
export * from '.'属于循环导出路径,IntelliSense无法正确解析。将文件夹的index.ts改为明确导出具体文件,例如:
// variables/index.ts export * from './vars1'; export * from './vars2';
这样编辑器能直接识别所有导出的变量,悬停时会显示完整的变量列表。
2. 显式定义合并类型并导出
如果需要保留当前目录结构,可手动合并类型并导出具体对象:
// variables/index.ts import * as vars1 from './vars1'; import * as vars2 from './vars2'; // 定义合并后的类型 export type AllVariables = typeof vars1 & typeof vars2; // 导出合并后的变量对象 export const allVars = {...vars1, ...vars2} as AllVariables;
后续导入allVars时,IntelliSense会识别其包含的所有属性,支持自动补全。
3. 减少嵌套导出转发
尽量避免多层级的export *转发,直接在需要的地方导入目标模块,减少中间转发层级,降低IntelliSense的解析难度。
内容的提问来源于stack exchange,提问作者Galivan
相关产品推荐
相关产品推荐

