title: Microsoft.Maps.ClusterLayer is not a constructor, other API objects work fine
body: <p>I have Bing Maps working perfectly with an ad-hoc array of PushPins using a Microsoft.Maps.Layer.  Now I want to cluster those pins, which <em>should</em> be very simple.  TypeScript compiles fine but at run time it keeps saying Microsoft.Maps.ClusterLayer is not a constructor.</p>
  
  <p>Everywhere on the web, including here at SO, says I should be able to create a ClusterLayer with an array of PushPin as a parameter, then insert that into the map instead of a (non-cluster) Layer.  Given a Layer works a treat, I'm pretty sure the API -should- be loaded and available when this code runs.  A breakpoint at that point, then add Watch, shows that the Microsoft.Maps namespace contains all manner of objects, including Layer, but nothing in that namespace starts with "Cl", implying that most if not all of the API is loaded, but ClusterLayer is not.</p>
  
  <pre><code>private markerLayer: Microsoft.Maps.Layer;
  private clusterLayer: Microsoft.Maps.ClusterLayer;
  ...
  // Working
  if(!this.markerLayer) {
    this.markerLayer = new Microsoft.Maps.Layer();
  } else {
    this.map.layers.remove(this.markerLayer);
  }
  this.markerLayer.setPrimitives(this.markers);
  this.map.layers.insert(this.markerLayer);
  
  // Non-working
  if(!this.clusterLayer) {
    this.clusterLayer = new Microsoft.Maps.ClusterLayer(this.markers);
    this.map.layers.insert(this.clusterLayer);
  } else {
    this.clusterLayer.setPushpins(this.markers);
  }
  </code></pre>
  
  <p>I put both working and non-working in the same place on the premise I should get two identical layers, one clustered and one not.  The block labelled "Working" shows the markers just like it should.  The block labelled "Non-Working" throws a "Microsoft.Maps.ClusterLayer is not a constructor" exception.</p>