import *作为TypeScript中的可迭代数组

时间:2018-03-06 16:38:36

标签: typescript

如何使用TypeScript访问不同文件中的多个类,如数组?

文件夹结构:

├── index.ts
└── models
    ├── index.ts
    ├── image.entity.ts
    └── user.entity.ts

image.entity.ts:

export class Image { }

user.entity.ts:

export class User { }

模型/ index.ts:

export * from './image.entity';
export * from './user.entity';

index.ts(期望的输出):

import * as models from './models/index';
// Is an iterable array, instead of a "module"
console.log(models.length) // 2

1 个答案:

答案 0 :(得分:5)

如果你拥有它,你可以使用modelsObject.keysObject.values之一来迭代Object.entries。请注意,您需要将es2017添加到--lib,以便后两个工作。

如果你真的希望models成为一个数组,你可以这样做:

image.entity.ts

export default class Image { }

user.entity.ts

export default class User { }

index.ts

import Image from './image.entity';
import User from './user.entity';

export default [
  Image,
  User,
]

然后像这样导入:

import models from './models';

console.log(models.length) // 2

请注意,您不需要使用deault导入/导出,但它们可以为您节省一些* as x