2016-06-22 15 views
1

私のJavascriptコードのメンバー変数をTypescript相当のものに変換する方法を工夫しています。私が持っているconstructor()後に私のJavaScriptコードでJavascriptメンバー変数をTypescriptメンバー変数に変換する

、:

this.theMediaItem = []; 
this.theMediaItem.embedLink = ''; 
this.theMediaItem.username = ''; 

私はexport classconstructor()の間で必要に応じて挿入されたが、それは好きではない、活字体と同等として次のことを試してみました。 「:

theMediaItem = []; 
theMediaItem.embedLink = ''; 
theMediaItem.username = ''; 
+2

は、なぜあなたは配列として 'theMediaItem'を定義していますか? – gevorg

+0

良い質問です。お勧めの方法は何ですか? –

+0

私は単純なオブジェクト 'this.theMediaItem = {}; 'として定義する必要があると思います – gevorg

答えて

2

ます。また、利用状況から、私はあなたがそのプロパティを割り当てることを見るのであなたは、配列としてごtheMediaItemを定義していないことを確認し、以下の構文を使用する必要があります。

class YourClass { 
    constructor() { 
     this.theMediaItem = {}; 
     this.theMediaItem.embedLink = ''; 
     this.theMediaItem.username = ''; 
    } 
} 

かは、簡単な方法でそれを実行します。

class YourClass { 
    theMediaItem = { embedLink: '', username: '' },  
    constructor() { 
     // ... 
    } 
} 

https://www.typescriptlang.org/docs/tutorial.html

+0

私は混乱しています。私はメンバー変数(this.xxxでアクセスできる)は、クラスYourClassとコンストラクタ()の間に置かなければならないと考えていました。 –

+0

True、単純なやり方で、更新された答えを見ることができます。 – gevorg

+0

本当にありがとうございます。それは私がやろうとしていることです。ブリリアント! –

4

あなたが記述しているものについては、ここでは1つのtypescriptですと同等です:

interface MediaItemArray<T> extends Array<T> { 
    embedLink?: string; 
    username?: string; 
} 

class MyClass { 
    theMediaItem: MediaItemArray<any> = []; 

    constructor() { 
     this.theMediaItem.embedLink = ""; 
     this.theMediaItem.username = ""; 
    } 
} 

しかし種類の奇妙なのです。..おそらく配列を使いたくないので、クラスに直接プロパティを持たせるのが一番です:

class MediaItem { 
    embedLink = ""; 
    username = ""; 
} 
またはインタフェースの説明:

class MyView { 
    mediaItem = new MediaItem() 
} 
:あなたがコメントで言うようにビューを持っている場合、あなたはそのようなプロパティとして追加することができ、

interface MediaItem { 
    embedLink: string; 
    username: string; 
} 

その後

またはインターフェイスを使用している場合:

class MyView { 
    mediaItem: MediaItem = { 
     embedLink: "", 
     username: "" 
    }; 
} 
+0

このようにした理由は、viewItem.embedLinkとtheMediaItem.usernameを挿入すると、ビューのhtmlコードが分かりやすくなりました。 –

+0

Typescriptについて勉強する必要があることがわかります。 –

関連する問題