2012-11-28 16 views
6
export class Entity { 
    add(component: Component, componentClass?: { new(): Component;}): Entity { 
     if (!componentClass) { 
      componentClass = component.constructor 
     } 

     /** sniiiiip **/ 
    } 
} 

Linea 4 dell'esempio (assegnazione component.constructor) fa sì che il compilatore a lamentarsi che:accesso di classe definita a macchina

La proprietà 'costruttore' non esiste sul valore di tipo 'Componente'

Qual è il modo corretto per ottenere un riferimento a un costruttore di oggetti? La mia comprensione è che tutti gli oggetti in JavaScript hanno una proprietà .constructor che punta al costruttore utilizzato per creare quell'oggetto ...

risposta

5

Questo è abbastanza raro nel codice digitato che non è incluso per impostazione predefinita nella definizione di Object. Puoi semplicemente trasmettere a any invece:

componentClass = (<any>component).constructor; 
Problemi correlati