anchor.diff:      With `Optional`, Angular sets the constructor parameter to `null` 
       and the component displays the title without a prefix.
   
  +    上例中，`'titlePrefix'`令牌没有提供商。
  +    如果没有`Optional`，Angular 将抛出错误。
  +    加上`Optional`，Angular 将构造函数参数设置为`null`，
  +    组件显示没有前缀的标题。
  +
   a#host-binding
   .l-main-section
   :marked
     ## Host Binding
  +
  +  ## 宿主绑定
  +
     Angular supports bindings to properties and events of the _host element_ which is the
     element whose tag matches the component selector.
   
  +  Angular 支持绑定到_宿主元素_的属性和事件，
  +  宿主元素是那些标签匹配组件选择器的元素。
  +
     ### Host Decorators
  +
  +  ### 宿主装饰器
   
     In _TypeScript_ and _ES6-with-decorators_, you can use host property decorators to bind a host
     element to a component or directive.
  
positive.code:   code examples to _ES6_ and to _ES5_ so that JavaScript developers
    can read and write Angular apps in their preferred dialect.
  
  a#toc
  :marked
    ## Table of contents
  
    [_TypeScript_ to _ES6_ to _ES5_](#from-ts)<br>
    [Modularity: imports and exports](#modularity)<br>
    [Classes and Class Metadata](#class-metadata)<br>
    [_ES5_ DSL](#dsl)<br>
    [Interfaces](#interfaces)<br>
    [Input and Output Metadata](#io-decorators)<br>
    [Dependency Injection](#dependency-injection)<br>
    [Host Binding](#host-binding)<br>
    [View and Child Decorators](#view-child-decorators)<br>
    [AoT compilation in _TypeScript_ Only](#aot)<br>
  
    **Run and compare the live <live-example name="cb-ts-to-js">_TypeScript_</live-example> and <live-example name="cb-ts-to-js" lang="js">JavaScript</live-example>
    code shown in this cookbook.**
  
  a#from-ts
  .l-main-section
  :marked
    ## _TypeScript_ to _ES6_ to _ES5_
    
    _TypeScript_ 
    <a href="https://www.typescriptlang.org" target="_blank" title='"TypeScript is a typed, superset of JavaScript"'>is a typed superset of _ES6 JavaScript_</a>.
    &nbsp; _ES6 JavaScript_ is a superset of _ES5 JavaScript_. &nbsp; _ES5_ is the kind of JavaScript that runs natively in all modern browsers.
    The transformation of _TypeScript_ code all the way down to _ES5_ code can be seen as "shedding" features.
  
    The downgrade progression is
    * _TypeScript_ to _ES6-with-decorators_
    * _ES6-with-decorators_ to _ES6-without-decorators_ ("_plain ES6_")
    * _ES6-without-decorators_ to _ES5_
  
    When translating from _TypeScript_ to _ES6-with-decorators_, remove 
    [class property access modifiers](http://www.typescriptlang.org/docs/handbook/classes.html#public-private-and-protected-modifiers)
  
negative.code: :marked
    ### Injection with the @Inject decorator
  
    ### 用 @Inject 装饰器注入
  
    Sometimes the dependency injection token isn't a class or constructor function.
  
    有时，依赖注入的令牌不是类或构造函数。
  
    In _TypeScript_ and _ES6-with-decorators_, you precede the class constructor parameter
    by calling the `@Inject()` decorator with the injection token.
    In the following example, the token is the string `'heroName'`.
  
    在 _TypeScript_ 和 _带装饰器的 ES6_ 中，可以在类的构造函数参数前调用`@Inject()`装饰器来指定注入令牌。
  
    The other JavaScript dialogs add a `parameters` array to the class contructor function.
    Each item constains a new instance of `Inject('heroName')`:
  
    其它 JavaScript 方言是通过向类的构造函数添加`parameters`数组。
    其中的每一项是`Inject`的实例。
  
    * _plain ES6_ &mdash; each item is a new instance of `Inject(token)` in a sub-array.
  
      _普通 ES6_ &mdash; 每一项是嵌套在一个子数组中的`Inject(token)`的实例。
  
    * _ES5_ &mdash; simply list the string tokens.
  
      _ES5_ &mdash; 简单列出字符串令牌。
  
    When writing with _ES5 DSL_, set the `Class.constructor` property to a function definition
    array as before. Create a `new ng.core.Inject(token)` for each parameter. 
  
    当用 _ES5 DSL_ 时，象前面那样把`Class.constructor`属性设置为函数定义数组。
    为每个参数创建一个`ng.core.Inject(token)`。
  
  +makeTabs(`
      cb-ts-to-js/ts/app/hero-di-inject.component.ts,
  