function(type, property, fullName) {
        validateFullName(fullName);
        if (this.parent) { illegalChildOperation('typeInjection'); }

        addTypeInjection(this.typeInjections, type, property, fullName);
      }
function(type, property, fullName) {
        validateFullName(fullName);
        if (this.parent) { illegalChildOperation('typeInjection'); }

        addTypeInjection(this.typeInjections, type, property, fullName);
      }
function ( type , property , fullName ) { validateFullName ( fullName ) ; if ( this . parent ) { illegalChildOperation ( 'typeInjection' ) ; } addTypeInjection ( this . typeInjections , type , property , fullName ) ; }
Used only via `injection`.

Provides a specialized form of injection, specifically enabling
all objects of one type to be injected with a reference to another
object.

For example, provided each object of type `controller` needed a `router`.
one would do the following:

```javascript
var container = new Container();

container.register('router:main', Router);
container.register('controller:user', UserController);
container.register('controller:post', PostController);

container.typeInjection('controller', 'router', 'router:main');

var user = container.lookup('controller:user');
var post = container.lookup('controller:post');

user.router instanceof Router; //=> true
post.router instanceof Router; //=> true

both controllers share the same router
user.router === post.router; //=> true
```

@private
@method typeInjection
@param {String} type
@param {String} property
@param {String} fullName
Used only via injection .