2016-04-24 3 views
8

Создание приложения Angular2. При вызове конструктора другого класса внутри конструктора первого класса возникает следующая проблема.Typcript class.default не является конструктором

Первый код класса

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

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

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

Второй код Класс:

export class SecondClass { 
    someOtherVar:string; 

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

Даст мне ошибку: ОРИГИНАЛ ИСКЛЮЧЕНИЕ: TypeError: second_class_1.default не конструктор

Содержание./второго класса

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 

Это скомпилированный результат от компилятора Виджета

+0

Сообщение Содержание '/ второго class'.. – dfsq

+0

'default' - это [зарезервированное слово javascript] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Lexical_grammar#Keywords). – Mottie

+0

Возможная циклическая ошибка для SecondClass – randominstanceOfLivingThing

ответ

12

Сообщение об ошибке означает, что вы использовали именованный экспорт (export class SecondClass {}) в ./second-class (не по умолчанию). Таким образом, это означает, что следует импорт выглядит как

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

Спасибо. Изменен код, но все еще возникает ошибка, например ORIGINAL EXCEPTION: TypeError: second_class_1.SecondClass не является конструктором. –

+0

Можете ли вы разместить содержимое «./second -class»? (TypeScript, не передается). – dfsq

+0

У меня это в моем вопросе чуть ниже кода FirstClass. –

4

Есть некоторые ошибки в коде:

  • недостающих {} от импорта

  • отсутствующего () от вызова конструктора

  • отсутствие this от доступа к членам класса

первого кода класса

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

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

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

код второго класса:

export class SecondClass { 
    someOtherVar:string; 

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

Спасибо. Это были опечатки при вводе вопроса. Код без этих ошибок дает указанную ошибку. –

Смежные вопросы