如下图所示:如果我需要在文件夹 A 里的某文件,访问文件夹 B 里的某服务,而文件夹 A 和 B 分别是两个不同 module 的实现,我需要在文件夹 A 的文件里,通过导入文件夹 B 里定义的 index 文件,来导入其暴露的服务,下面的例子里导入的是 BrowserService.

Jerryindex.ts 文件的内容:

如果 browser 文件下定义的是符合 Angular 命名规范的 index.ts 文件,则文件夹A里的导入语句,可以不显式包含 index.ts 这个文件名,简写成:

实际上,这些 index.ts 文件,称为 barrel file,在这个StackOverflow thread里有讨论。

桶是一种将多个模块的导出汇总到单个便利模块的方法。 桶本身是一个模块文件,用于重新导出其他模块的选定导出。

Imagine three modules in a heroes folder:

// heroes/hero.component.ts
export class HeroComponent {}// heroes/hero.model.ts
export class Hero {}// heroes/hero.service.ts
export class HeroService {}

如果没有桶,消费者将需要三个导入语句:

import { HeroComponent } from '../heroes/hero.component.ts';
import { Hero }          from '../heroes/hero.model.ts';
import { HeroService }   from '../heroes/hero.service.ts';

我们可以将一个桶添加到导出所有这些项目的 heros 文件夹(按惯例称为索引):

export * from './hero.model.ts';   // re-export all of its exports
export * from './hero.service.ts'; // re-export all of its exports
export { HeroComponent } from './hero.component.ts'; // re-export the named thing

现在消费者可以从桶中进口它需要的东西。

import { Hero, HeroService } from '../heroes'; // index is implied

更多Jerry的原创文章,尽在:“汪子熙”:

关于 Angular 项目里的 index.ts相关推荐

  1. Angular 项目里 angular.json 文件内容的学习笔记

    看一个基于 Angular 的 SAP Spartacus 项目里 angular.json 的例子: version: The configuration-file version. newProj ...

  2. 如何在Angular项目里创建新的Service

    右键选择app文件夹,选择Angular Generator->Service: 取名为cart. 生成的cart.service.ts默认如下图: 定义一个类型为数组的属性items,用于存放 ...

  3. Angular 项目里的 tsconfig.json

    https://www.typescriptlang.org/docs/handbook/tsconfig-json.html The presence of a tsconfig.json file ...

  4. Angular 项目里和 sourceMap 相关的设置

    生产环境里,sourceMap 为 false:source source-map 和 source-map-loader 是专门的包: tsconfig.json 里,sourceMap 为 tru ...

  5. angular项目(TS)引入腾讯地图报找不到qq

    文章目录 在angular项目中引入腾讯地图 问题解决 结尾 在angular项目中引入腾讯地图 在index.html文件中script标签加载API服务 <script charset=&q ...

  6. angular项目整合到.net mvc中

    Webpack配置 第一步必然是要先得到前端项目的打包资源,由强大的webpack来完成,目标是将angular的所有依赖以及应用主代码分别打包到polyfill.js.vendor.js.main. ...

  7. Angular项目构建指南 - 不再为angular构建而犹豫不决(转)

    如果你不知道什么是Angular或者根本没听说过,那么我接下来所说的对你来说毫无益处,不过如果你打算以后会接触Angular或者干脆要涨涨姿势~读下去还是有点用的. Angular和它之前所出现的其余 ...

  8. thinkphp url去掉index.php,thinkphp 去掉URL 里面的index.php(?s=)

    例如你的原路径是 http://localhost/test/index.php/home/goods/index.html 那么现在的地址是 http://localhost/test/home/g ...

  9. 关于 Angular 项目类型为 library 的工程使用 tsconfig.json 的问题

    我今天做 Angular 开发时,遇到一个很奇怪的问题: 在某个 Angular library 项目里,无法正确解析出 @Spartacus/core, 错误消息: Cannot find modu ...

最新文章

  1. php 点击删除数据,使用php脚本删除数据
  2. IOS自带正则表达式NSPredicate的使用
  3. Python爬虫进阶三之Scrapy框架安装配置
  4. Shell变量的初始值赋值
  5. qt和python关系_Python与Qt - AlphaJay的个人空间 - OSCHINA - 中文开源技术交流社区
  6. luogu_1984 [SDOI2008]烧水问题
  7. 银河水滴张曼:远距离步态识别系统与应用 |量子位沙龙回顾
  8. 如果一个人请优雅的活着。
  9. Pycharm 2018 激活 亲测有效
  10. 基于微信小程序的智能填表工具软件系统
  11. 博图(博途)V14编译成功,但仿真无法弹出下载程序窗口/不弹框
  12. 腾讯微博开放平台OAuth1.0授权完整流程(C#)
  13. Sublime text3 安装PyV8
  14. 离线 维基百科 android,iPhone上的离线维基百科(附安装方法)
  15. dota英雄出装备大全
  16. unity如何插入图片_unity 图片导入及其使用方法
  17. 如何做一个讨厌的女人
  18. Jmeter——BeanShell PreProcessor的用法
  19. Springboot集成Swagger报错Parameter 0 of method linkDiscoverers in org.springframework.hateoas.config.Hat
  20. QuickBooks 2018 For Dummies 免积分下载

热门文章

  1. Git submodule的使用
  2. oracle中用户连接相关
  3. Retrofit2/OkHttp 重写覆盖headers 与 不重写覆盖Headers
  4. jquery 中 fn.apply(this, arguments)是什么函数?有什么作用?能举个例子吗
  5. Educational Codeforces Round 9 A. Grandma Laura and Apples 水题
  6. 常用jquery鼠标事件和渐变动画效果
  7. Cacti使用配置及FAQ
  8. 什么是编译型和解释型语言?
  9. C#关键字详解第二节
  10. windows环境下 curl 安装和使用