原来如此
TypeScript interface 中字符串字面量 key 的 JSDoc 注释在自动补全时不会显示,hover 时也没有提示。这个扩展是打算解决这个问题的。
功能
- Hover 提示:鼠标悬停在字符串 key 上显示 JSDoc 注释
- 跳转到定义:Cmd/Ctrl + Click 跳转到 interface 中的定义位置
- 查找引用:查找项目中所有使用该 key 的位置
使用方法
1. 在 interface 中添加 JSDoc 注释
// src/types/channels.d.ts
export interface IpcMainChannels {
/** 获取用户信息 */
'user:get': { id: string };
/** 更新用户设置 */
'user:update': { settings: UserSettings };
}
export interface IpcRendererChannels {
/** 窗口准备就绪 */
'window:ready': void;
}
2. 配置扩展
在 .vscode/settings.json 中添加:
{
"codeHintHelper.files": [
{
"path": "src/types/channels.d.ts",
"interfacePattern": "Ipc\\w+Channels"
}
]
}
3. 使用
在代码中使用这些 key 时,hover 即可看到注释:
ipcMain.handle('user:get', ...); // hover 显示 "获取用户信息"
配置项
codeHintHelper.files
配置要增强的文件列表。
| 属性 |
类型 |
必填 |
说明 |
path |
string |
是 |
文件相对路径,如 src/types/ipc.d.ts |
interfacePattern |
string |
否 |
正则表达式,匹配要处理的 interface 名称 |
interfacePattern 示例
- 不填:匹配文件中所有
export interface
Ipc\w+:匹配 IpcMain、IpcRenderer 等以 Ipc 开头的 interface
(EventMap|ChannelMap):匹配 EventMap 或 ChannelMap
注意事项
- JSDoc 注释必须是单行格式:
/** 注释内容 */
- 注释需要紧挨在 key 定义的上一行
| |