anchor.diff:      to simplify our code. We generally prefer the strong typing that TypeScript affords.
       We can rewrite the method, casting to HTML DOM objects like this.
       
  -    我们把`$event`变量声明成了`any`类型，这意味着我们放弃了强类型，以简化代码。我们更建议您好好使用TypeScript提供的强类型机制。
  -    我们可以重写此方法，把它声明为HTML DOM对象，就像这样：
  +    我们把`$event`变量声明为`any`类型，这意味着我们放弃了强类型，以简化代码。我们更建议您好好使用TypeScript提供的强类型机制。
  +    我们可以重写此方法，把它强制转换为HTML DOM对象，就像这样：
     +makeExample('user-input/ts/app/keyup.components.ts', 'key-up-component-1-class', 'app/keyup.components.ts (类 v.1 - 强类型版本)')(format=".")
     :marked
       <br>Strong typing reveals a serious problem with passing a DOM event into the method:
  
positive.code:   We'll call out the highlights after we bask briefly in its minimalist glory.
    
    下面就是“简版英雄指南”组件。
    短暂看一下即可，我们接下来将对它们分别讲解。
  
  +makeExample('user-input/ts/app/little-tour.component.ts', 'little-tour', 'app/little-tour.component.ts')(format=".")
  :marked
  
negative.code:   of JavaScript with restrictions and a few added tricks.
    
    等号左边的`(click)`表示把该按钮的点击事件作为**绑定目标**。
    等号右边引号中的文本是一个**模板语句**，在这里我们通过调用组件的`onClickMe`方法来响应这个点击事件。
    [模板语句](./template-syntax.html#template-statements)是JavaScript的一个受限子集，但它也添加了少量“小花招”。
  
    When writing a binding we must be aware of a template statement's **execution context**.
    The identifiers appearing within a statement belong to a specific context object.
  