Egg支持JS智能提醒

本文章思路来自https://zhuanlan.zhihu.com/p/56780733

定位

其实由于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文件生成

1550905277423

其实egg原生支持JavaScript,对于TS只是支持不推荐的态度,并没有使用TS去重构,本次智能提醒,应该是对JS一个劣势的补齐,解决方案也似乎借鉴了TS的方式,但又保留了人们书写JS的习惯