Egg支持JS智能提醒
定位
其实由于Egg本身的动态加载机制,所以JavaScript很难去做智能提醒(如变量定义检查),本次借鉴TS的动态生成d.ts,使用ts的Declaration Merging(声明合并)特性,读取JSDoc注释。
获取
- 更新egg-bin模块
- package.json 添加 “egg”: { “declarations”: true }
实操,升级个人GitHub项目chum,执行
npm i egg-bin
将其从4.9.0–>4.11.0并在package.json的尾部加上上述egg的kv,在根目录下生成tpyping文件夹,将app目录下的controller,model,以及根目录下的index,config目录都进行了ts文件生成
其实egg原生支持JavaScript,对于TS只是支持不推荐的态度,并没有使用TS去重构,本次智能提醒,应该是对JS一个劣势的补齐,解决方案也似乎借鉴了TS的方式,但又保留了人们书写JS的习惯