index.ts和xxx.module.ts中的导出区别是什么

时间:2017-07-15 08:52:09

标签: angular

index.tsxxx.module.ts导出的区别是什么?
我为什么要创建index.ts文件?

index.ts

export * from './about.component';
export * from './about.routes';

xxx.module.ts

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';

import { AboutComponent } from './about.component';
import { AccordionModule } from 'ng2-bootstrap/components/accordion';

@NgModule({
    imports: [CommonModule, AccordionModule],
    declarations: [AboutComponent],
    exports: [AboutComponent]
})
export class AboutModule { }

2 个答案:

答案 0 :(得分:0)

将所有公共属性导出到已定义的文件中 进入xxx.module只导出最后一个类 remeber tath导出签名是范围可见性

答案 1 :(得分:0)

Index.ts exports

如果您有 (concat ((_ extract n-1 k+1) x) y ((_ extract k-1 0) x)) 个文件,则可以从中index.ts导出内容。我们假设你有一个非常深的文件结构:

for easier access and readability

您可以对index.ts文件执行的操作是合并要导出到项目中的这些类和接口。

folder1
|folder2
|-|classToExport
|-|folder3
|---|folder4
|-----|classToExport

现在你有了一个index.ts文件,你可以以更干净的方式将这些类导入到其他地方。

// index.ts
export * from ./folder1/folder2/someClass;
export * from ./folder1/folder2/folder3/folder4/otherClass

使用您定义的index.ts文件,您现在可以从同一文件导入这两个类/接口。

模块导出

从模块导出类对于开发供其他人使用的工具和库非常重要。以PrimeNG为例。您想要使用其中一个数据表,因此在您的模块中,您可以执行类似

的操作
// class in different directory tree in the same project
// SomeClass is from first index.ts import, OtherClass is from the second.
import {SomeClass, OtherClass} from 'app/path/to/index.ts_file';

从其库中导入模块,现在您可以使用Datatable。但是等等,你根本就没说过// in one of your modules ... imports: [DataTableModule] 。如果仅导入Datatable模块,您是如何访问Datatable的? 因为他们从模块中导出。通过从模块中导出类,您现在可以通过导入其模块来使用该类。