想要在 typescript 中扫描一个目录, 然后导入该目录下的所有文件, 但是这样的话, 文件路径是运行时确定的, 有什么办法吗?
按照 js 的模式,就 require ;
或者做 code generate ?文件在打包的时候就要确定有哪些文件
用 webpack 才能实现,和 js 一样,用 import + async 或者 require 实现
import('./dir/' + filename).then(...) webpack 会帮你好这件事,但这样的话这个目录下所有文件都会打包到 bundle 里面
require 的话会丢失类型吧, 需要手动 as 吗? 这个路子好像可以...
是 Node 环境, 其实我就是想扫描一个目录下的 router 注册下
那没有必要强类型,或者说这里强类型的意义何在。。。
加载路由肯定是框架做的吧,控制器算业务的吧,按道理也不会耦合,用 any 就行,或者直接当 baseController 用就行吧
ES static import 必须是确定的模块路径,ES dynamic import 还不被 nodejs 默认支持( Experimental https://nodejs.org/dist/latest-v11.x/docs/api/esm.html ),所以默认只能用 require,需要类型信息的话用 as 来标注
文件名都不知道類型自然更不知道
你仍然可以 require, 只是 require 得到的東西自己解決類型
emm, 好像也是...那就这样吧
只是想自己拿着 koa 照着 egg 撸一下, koa 不帮我加载路由咯
其实也可以不用扫
写一个 router 的装饰器来收集这些东西也是可以的
哦,想错了,node 上面文件还没加载进来,忽略我吧
静态类型必须在编译时确定,没有指定路径是无法确定的,所以不能实现你的需求
require 会丢类型,但是你需要批量 require 的地方,比如统一注册路由信息,需要类型信息吗?