2016-04-24 17 views
8

Creazione di un'app Angular2, sto affrontando il seguente problema, quando si chiama il costruttore di un'altra classe all'interno del costruttore di prima classe.Typescript class.default non è un costruttore

First Class e Codice

import {SecondClass} from './second-class' 

export class FirstClass { 
    someVar:string; 
    secondClass:SecondClass; 

    constructor(firstClass?: FirstClass) { 
     this.someVar='test'; 
     this.secondClass= new SecondClass(); 
    } 
} 

Seconda Codice classe:

export class SecondClass { 
    someOtherVar:string; 

    constructor(secondClass?:SecondClass) { 
     this.someOtherVar='test'; 
    } 
} 

mi avrebbe dato l'errore: ORIGINALE ECCEZIONE: TypeError: second_class_1.default non è un costruttore

Contenuto./seconda classe

System.register([], function(exports_1, context_1) { 
    "use strict"; 
    var __moduleName = context_1 && context_1.id; 
    var SecondClass; 
    return { 
     setters:[], 
     execute: function() { 
      SecondClass = (function() { 
       function SecondClass(secondClass) { 
        this.someOtherVar='test'; 
       } 
       return SecondClass; 
      }()); 
      exports_1("SecondClass", SecondClass); 
     } 
    } 
}); 
//# sourceMappingURL=second-class.js.map 

Questa è l'uscita compilato dal compilatore tipografico

+0

contenuti Post del '/ secondo-class'.. – dfsq

+0

'default' è una [parola riservata javascript] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Lexical_grammar#Keywords). – Mottie

+0

Possibile errore ciclico per SecondClass – randominstanceOfLivingThing

risposta

12

Messaggio di errore implica che si è utilizzato nominato esportazione (export class SecondClass {}) in ./second-class (non di default). Quindi vuol dire che il vostro dovrebbe importazione simile a

import {SecondClass} from './second-class' 
+0

Grazie. Modificato il codice, ma continua ad avere errori come ORIGINAL EXCEPTION: TypeError: second_class_1.SecondClass non è un costruttore –

+0

Puoi pubblicare i contenuti di "./second-class"? (TypeScript, non transpiled). – dfsq

+0

Ce l'ho nella mia domanda appena sotto il codice FirstClass. –

4

Ci sono alcuni errori nel codice:

  • mancanti {} da importazione

  • manca () dal chiamando il costruttore

  • mancante this dall'accesso ai membri della classe

First Class e Codice

import {SecondClass} from './second-class' 

export class FirstClass { 
    someVar:string; 
    secondClass:SecondClass; 

    constructor(firstClass?: FirstClass) { 
     this.someVar='test'; 
     this.secondClass= new SecondClass(); 
    } 
} 

codice di Seconda Classe:

export class SecondClass { 
    someOtherVar:string; 

    constructor(secondClass?:SecondClass) { 
     this.someOtherVar='test'; 
    } 
} 
+0

Grazie. Questi erano errori durante la digitazione della domanda. Il codice, senza questi errori, sta dando un errore. –

Problemi correlati