anchor.diff:      td
         :marked
           ### Interfaces
  +        
  +        ### 接口
   
           When defining classes that need to implement a certain method, it
           is common to use TypeScript interfaces that enforce that the 
           method signature is correct. Component lifecycle methods like `ngOnInit`
           are one example of this pattern. `ngOnInit` is defined in the `OnInit`
           interface.
  +        
  +        当定义一个实现某个方法的类时，使用TypeScript接口来确保方法的签名正确是常见的手段。组件生命周期方法，比如`ngOnInit`是这个模式的其中一个例子。
  +        `ngOnInit`是在`OnInit`接口里面定义的。
   
         +makeExample('cb-ts-to-js/ts/app/hero-lifecycle.component.ts')(format="." )
   
       td
         :marked
           ### Implementing Methods without Interfaces
  +        
  +        ### 实现方法，但忽略接口
   
           TypeScript interfaces are purely for developer convenience
           and are not used by Angular 2 at runtime. This means that in JavaScript
           code we don't need to substitute anything for interfaces. We can just
           implement the methods.
  +        
  +        TypeScript接口是纯为开发者的方便服务的，它不能被Angular 2在运行时使用。这就意味着在JavaScript代码里面，
  +        我们不需要使用任何东西来代替接口。我们可以直接实现方法。
   
         +makeExample('cb-ts-to-js/js/app/hero-lifecycle.component.js')(format="." )
   
  
positive.code:       :marked
          Or a pipe:
          
        code-example.
          var MyPipe = ng.core.Pipe({
            name: 'myPipe'
  
negative.code:     td
        :marked
          ### Injection by Type
          
          ### 按类型注入 
  
          Angular 2 can often use TypeScript type information to
          determine what needs to be injected.
          
          Angular 2可以经常使用TypeScript的类型信息来确定需要注入什么。
  
        +makeExample('cb-ts-to-js/ts/app/hero-di.component.ts')(format="." )
  
      td
        :marked
          ### Injection with Parameter Tokens
          
          ### 使用参数指令来注入
  
          Since no type information is available in ES5 JavaScript,
          we must identify "injectables" in some other way.
          
          因为在ES5 JavaScript里没有类型信息，所以我们必须要使用其他方法来识别“可以注入”的东西。
  
          We attach a `parameters` array to the constructor function. 
          Each array item is the dependency injection token that identifies the thing to be injected. 
          Often the token is the constructor function for the class-like dependency.
          
          我们给构造函数附加一个`参数`数组。每个数组项目都是一个依赖注入的令牌，用来识别被注入的东西。
  
        +makeExample('cb-ts-to-js/js/app/hero-di.component.js')(format="." )
  
        :marked
          When using the class convenience API, we can also supply the parameter
          tokens by wrapping the constructor in an array.
          
          当我们使用类便利API时，我们也可以把构造器包装到一个数组里面来提供参数令牌。
  
        +makeExample('cb-ts-to-js/js/app/hero-di-inline.component.js')(format="." )
  
  