# Class typed-target

    class typed-target : basic-target {
        rule __init__ ( name : project : type : sources * : requirements * : default-build * : usage-requirements * )
        rule type ( )
        rule construct ( name : source-targets * : property-set )

        # Methods inherited from abstract-target
        rule name ( )
        rule project ( )
        rule location ( )
        rule full-name ( )

        # Methods inherited from basic-target
        rule generate ( property-set )
      }

typed-target is the most common kind of target alternative. Rules for creating typed targets are defined automatically for each type.

1. `rule __init__ ( name : project : type : sources * : requirements * : default-build * : usage-requirements * )`

   `name`

     The name of the target

   `project`

     The project in which the target is declared.

   `type`

     The type of the target.

2. `rule type ( )`

   Returns the type of the target.

3. `rule construct ( name : source-targets * : property-set )`

   Implements basic-target.construct. Attempts to create a target of the correct type using generators appropriate for the given property-set. Returns a property-set containing the usage requirements and a list of virtual targets.

   This function is invoked automatically by basic-target.generate and should not be called directly by users.