2017-08-10 14 views
-1

私は、次のとtypescriptですでES6クラスを使用しています:typescriptでクラスプロパティタイプを定義しますか?

class Camera { 
    constructor(ip) { 
     this.ip = ip; 
    } 
} 

私は戻って、このエラーを取得し、まだをコンパイルすると思われるものの:

プロパティのIP "に存在しません。 「カメラ」と入力します。私はタイプ定義した場合

this.ip: string = ip; 

を私が取り戻す:

';'期待される。

両方のエラーを取り除くためにクラスをどのようにフォーマットする必要がありますか?

+0

クラスのメンバ変数を宣言することによって。今はどこにも宣言されていません。割り当て時にタイプを定義することはできません。しかし、コンストラクターの引数リストに変数を定義することができます。 –

+0

*両方のエラーを取り除くためにクラスをどのようにフォーマットする必要がありますか?ドキュメントを読むか、何百ものチュートリアル、イントロ、ブログ投稿を見てください。ところで、「TypeScriptでES6クラスを使用する」と言っても間違いがあります。 2つはかなり近いですが、TypeScriptクラスは** ES6クラスではありません。 –

+0

@torazaburoチップのおかげで、本当に解決策だと思うなら、あなたの答えを投稿してみませんか? –

答えて

1

いずれファーストクラスのプロパティを宣言:

class Camera { 
    ip; 
    constructor(ip) { 
     this.ip = ip; 
    } 
} 

またはコンストラクタパラメータ(好ましい方法)でそれを宣言し、それを示すためにパラメータにアクセス修飾子を追加するプロパティである。

class Camera { 
    constructor(public ip) { 
     // note no explicit assignment 
    } 
} 
0

プロパティ "ip"にアクセスしようとしましたが、クラス自体で定義されていません。 Cameraクラスを呼び出してipプロパティを検索すると、コンストラクター(ip){}が呼び出されます。クラスで定義していないので、エラーが発生します。

このように使用します。ご多幸を祈る。

class Camera { 
private ip: string; // declare your variable first with the type 

    constructor(ip) { 
    this.ip = ip; 
    } 
} 
関連する問題