想要在 typescript 中扫描一个目录, 然后导入该目录下的所有文件, 但是这样的话, 文件路径是运行时确定的, 有什么办法吗?
1
azh7138m 2019 年 2 月 16 日 via Android
按照 js 的模式,就 require ;
或者做 code generate ?文件在打包的时候就要确定有哪些文件 |
2
VDimos 2019 年 2 月 16 日 via Android
用 webpack 才能实现,和 js 一样,用 import + async 或者 require 实现
|
3
menyakun 2019 年 2 月 16 日
import('./dir/' + filename).then(...) webpack 会帮你好这件事,但这样的话这个目录下所有文件都会打包到 bundle 里面
|
6
azh7138m 2019 年 2 月 16 日 via Android
@Sparetire 那没有必要强类型,或者说这里强类型的意义何在。。。
加载路由肯定是框架做的吧,控制器算业务的吧,按道理也不会耦合,用 any 就行,或者直接当 baseController 用就行吧 |
7
vghdjgh 2019 年 2 月 16 日
ES static import 必须是确定的模块路径,ES dynamic import 还不被 nodejs 默认支持( Experimental https://nodejs.org/dist/latest-v11.x/docs/api/esm.html ),所以默认只能用 require,需要类型信息的话用 as 来标注
|
8
momocraft 2019 年 2 月 16 日
文件名都不知道類型自然更不知道
你仍然可以 require, 只是 require 得到的東西自己解決類型 |
11
azh7138m 2019 年 2 月 16 日 via Android
哦,想错了,node 上面文件还没加载进来,忽略我吧
|
12
VDimos 2019 年 2 月 16 日 via Android
静态类型必须在编译时确定,没有指定路径是无法确定的,所以不能实现你的需求
|
13
thomaspaine 2019 年 2 月 17 日
@Sparetire require 会丢类型,但是你需要批量 require 的地方,比如统一注册路由信息,需要类型信息吗?
|