WebStorm遇TS2305错误:nostr-tools无导出成员Event,VSCode无此问题
nostr-tools模块找不到Event导出的问题 检查WebStorm的TypeScript版本配置
打开WebStorm设置(Windows/Linux点File>Settings,Mac点WebStorm>Settings),找到Languages & Frameworks > TypeScript,确保选的TS版本和项目package.json里的一致——优先选本地node_modules里的版本,别用WebStorm内置的。改完点Apply,重启WebStorm试试。刷新WebStorm的类型缓存
点File > Invalidate Caches...,勾选Clear file system cache and local history后点Invalidate and Restart。重启后等WebStorm重新索引完项目文件,再看报错是否消失。确认
nostr-tools的类型定义
手动去项目node_modules/nostr-tools目录下找类型文件(比如index.d.ts),看看里面确实导出了Event类型不。要是有导出但WebStorm不认,就删了node_modules和package-lock.json/yarn.lock,重新跑npm install或yarn install。调整WebStorm的导入识别设置
进Settings > Editor > General > Auto Import,确保TypeScript相关的自动导入选项都开着,尤其是Add unambiguous imports on the fly。另外去Settings > Languages & Frameworks > TypeScript > Inspections里,确认Unresolved reference的检查规则没乱判。试试显式类型导入
要是上面的方法都没用,换用TS的类型导入语法:import type { Event } from 'nostr-tools';这种语法TS 3.8以上支持,能明确告诉编译器这是类型导入,可能能避开WebStorm的识别问题。
内容的提问来源于stack exchange,提问作者xy01

