在TypeScript中将*导入为iterable数组
如何使用TypeScript访问不同文件(如数组)中的多个类? 文件夹结构:在TypeScript中将*导入为iterable数组,typescript,Typescript,如何使用TypeScript访问不同文件(如数组)中的多个类? 文件夹结构: ├── index.ts └── models ├── index.ts ├── image.entity.ts └── user.entity.ts image.entity.ts: export class Image { } export class User { } user.entity.ts: export class Image { } export class User
├── index.ts
└── models
├── index.ts
├── image.entity.ts
└── user.entity.ts
image.entity.ts:
export class Image { }
export class User { }
user.entity.ts:
export class Image { }
export class User { }
型号/索引.ts:
export * from './image.entity';
export * from './user.entity';
index.ts(期望输出):
现在,只需使用
Object.key
、Object.values
或Object.entries
中的一个,就可以迭代模型。请注意,您需要将es2017
添加到--lib
,后两者才能工作
如果您确实希望模型
成为一个阵列,您可以这样做:
import models from './models';
console.log(models.length) // 2
image.entity.ts
export default class Image { }
export default class User { }
user.entity.ts
export default class Image { }
export default class User { }
索引
import Image from './image.entity';
import User from './user.entity';
export default [
Image,
User,
]
然后像这样导入它:
import models from './models';
console.log(models.length) // 2
请注意,您不需要使用deault导入/导出,但它们会为您节省一些*作为x
您可以更具体地说明您的期望,即您希望模型
看起来像什么?@Tao模型
应该是类型脚本类型:(图像类型|用户类型)[
。也许我应该扩展;我目前使用的框架TypeORM需要一个实体数组作为它的ORM。TypeORM的连接对象看起来像:{host:'0.0.0',…,entities:[Image,User]}。因为我不想手动扩展entitites
-数组,所以每次添加新模型时,我都想使用TypeScriptimport
功能,如果可能的话,或者任何其他方式。对不起,我没有阅读“所需输出”部分,有点困惑。