将共享/部分模块导入另一个文件
Import shared/partial module into another file
假设我有两个文件:
box.ts:
export module Entities {
export class Box { .. Stuff }
原点.ts:
export module Entities {
export class Origin { .. other stuff }
根据我对javascript的理解,这两个模块应该合并为一个模块,其中包含我的两个类。(出于组织原因,我只想将它们放在单独的文件中,但box和origin都是实体。)
所以现在我有一个文件需要同时使用这两个:
服务操作.ts:
import {Entities} from '../entities/box';
import {Entities} from '../entities/origin';
... stuff that uses both of those entities.
这给了我一个错误:
重复标识符"实体";
如果我有一个或另一个,它运行良好,但两者都失败了。
有没有一种方法可以将它们组合起来,以便我可以在service-action.ts文件中执行Entities.Box
和Entities.Origin
唯一的方法是将Box
和Origin
放在同一个文件中吗?
不要将名称空间(内部模块)与外部模块混合使用。请参阅这篇文章、这个问题和其他反对混合的论点。我发现最好不要完全使用内部模块。我们没有从名称空间中获得任何封装好处。相反,目录是组织代码的一种简单而可靠的方式,而且您已经在使用它们了。
实体/box.ts:
export class Box { .. Stuff }
实体/来源.ts:
export class Origin { .. other stuff }
现在,您不必编写Entities.Box
,只需导入Box
并使用它:
import { Box } from '../entities/box';
import { Origin } from '../entities/origin';
使用as
:
import {Entities as BoxEntities} from './../entities/box';
import {Entities as OriginEntities} from './../entities/origin';
// Use BoxEntities and OriginEntities here
最好是,如果您实际上是直接从文件中导出类(正如mk.所指出的那样),那么您可以创建一个entities.ts
文件来处理它:
export * from './entities/box';
export * from './entities/origin';
然后导入此文件:
import * as Entities from './../entities';
// use Entities.Box and Entities.Origin here
相关文章:
- Angular2将组件方法导入到另一个组件中
- 在 jquery 中导入另一个脚本
- 在 PHP 中将变量从一个页面导入到另一个页面
- 如何将数据从一个表导入另一个表(使用数组)
- JavaScript 将一个模块“导入”到另一个模块中
- 如何从另一个流星包导入特殊的更少文件
- 为什么<文本区域>的值在导入到另一个文档时会重置
- 如何将 jQuery 嵌入/导入到另一个 JavaScript 库中,而不会与网站上部署的 jQuery/其他库发生潜在
- 将一个Javascript文件导入另一个Javascript文件
- 404在nodejs+Ionic应用程序中从index.html中的另一个文件夹导入js文件时出错
- 将共享/部分模块导入另一个文件
- Angular 2-是否可以将我的路由存储在另一个文件中,并将它们导入到app.ts文件中(因为随着时间的推移,路由会不
- 如何从另一个gull文件.js导入所有任务
- Jquery日期拾取器,即使另一个具有共享导入的JSP工作也没有响应
- sequize .import()"从另一个文件导入模型
- 如何导出从另一个文件导入的流类型定义
- 在TypeScript中从另一个文件导入class
- 如何将另一个js文件导入到js文件中
- 如何将不同的方法从不同的文件导入到另一个javascript文件中,以便使用量角器对页面对象进行端到端测试
- 从一个HTML中导入文本,并使用javascript将其插入另一个HTML