anchor.diff:  :marked
     Each overide method takes a `MetadataOverride<T>` where `T` is the kind of metadata
     appropriate to the method, the parameter of an `@NgModule`, `@Component`, `@Directive`, or `@Pipe`.
  +
  +
   
   code-example(format="." language="javascript").
     type MetadataOverride<T> = {
  
positive.code:   It takes two arguments: the component type to override (`HeroDetailComponent`) and an override metadata object.
    The [overide metadata object](#metadata-override-object) is a generic defined as follows:
  
    它接受两个参数：要替换的组件类型(`HeroDetailComponent`)和用于替换的元数据对象。
    [替换元数据对象](#metadata-override-object)是泛型类，就像这样：
  
  code-example(format="." language="javascript").
    type MetadataOverride<T> = {
  
negative.code:   A metadata override object can either add-and-remove elements in metadata properties or completely reset those properties.
    This example resets the component's `providers` metadata.
  
    元数据重载对象可以添加和删除元数据属性的项目，也可以彻底重设这些属性。
    这个例子重新设置了组件的`providers`元数据。
  
    The type parameter, `T`,  is the kind of metadata you'd pass to the `@Component` decorator:
  