2016-04-24 10 views
8

Angular2アプリケーションを作成すると、ファーストクラスのコンストラクタ内で別のクラスのコンストラクタを呼び出すときに、次の問題に直面しています。Typescript 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'; 
    } 
} 

は私にエラーを与える:ORIGINAL例外: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 

これはTypescriptコンパイラのコンパイル済み出力です

+0

ポストコンテンツ。 – dfsq

+0

'default'は[javascript予約語](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Lexical_grammar#Keywords)です。 – Mottie

+0

SecondClassの可能性のある循環エラー – randominstanceOfLivingThing

答えて

12

./second-class(デフォルトではありません)に名前付きエクスポート(export class SecondClass {})を使用したことを示すエラーメッセージが表示されます。だから、あなたのインポートする必要がありますが、コードにはエラーがあります

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

ありがとうございます。コードを修正しましたが、元の例外: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(); 
        } 
    } 
    

    セカンドクラスコード:。 `/秒-class`の

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

    ありがとうございます。質問を入力するときにこれらはタイプミスでした。これらのエラーのないコードは、エラーを出しています。 –

    関連する問題