
.l-main-section
  h2(class="function export") forwardRef

  
  pre.prettyprint
    code.
      forwardRef(forwardRefFn: ForwardRefFn) : Type
  

  p.location-badge.
    exported from <a href='../core'>angular2/core</a>
    defined in <a href="https://github.com/angular/angular/tree/2.0.0-alpha.37/modules/angular2/src/core/di/forward_ref.ts#L3-L33">angular2/src/core/di/forward_ref.ts (line 3)</a>

  :markdown
    Allows to refer to references which are not yet defined.
    
    This situation arises when the key which we need to refer to for the purposes of DI is declared,
    but not yet defined.
    
    ## Example:
    
    ```
    class Door {
      // Incorrect way to refer to a reference which is defined later.
      // This fails because `Lock` is undefined at this point.
      constructor(lock:Lock) { }
    
      // Correct way to refer to a reference which is defined later.
      // The reference needs to be captured in a closure.
      constructor(@Inject(forwardRef(() => Lock)) lock:Lock) { }
    }
    
    // Only at this point the lock is defined.
    class Lock {
    }
    ```
    
    


