2017-02-14 3 views
0

Ich versuche, eine neue Instanz einer Klasse mit leeren Werten zu erstellen, aber ich kämpfe mit dem Code.Erstellen einer neuen Instanz einer Klasse in Typoskript

Hier ist meine Klassendatei Code:

export class MyTimeDefinition { 
    RequestCodes: Array<RequestCodes>; 
    BalanceCodes: Array<BalanceCodes>; 
    ID: number; 
    Description: { 
     SelectedLanguage: number, 
     Values: { 
      LanguageID: number, 
      ValueID: number, 
      Value: string 
     }[] 
    }; 
    IsDataLoaded: boolean; 
    TypeName: string; 
} 

export interface RequestCodes { 
    ID: number; 
    StringValue: string; 
} 

export interface BalanceCodes { 
    ID: number; 
    StringValue: string; 
} 

und in meiner Komponente ich versuchen, eine neue Instanz der Klasse wie folgt zu erstellen:

//Create New MyTime-Definition 
public createNewMyTimeDefinition() { 
    let newMyTimeDefinition = new models.MyTimeDefinition(); 
    console.log(newMyTimeDefinition); 
} 

das Ergebnis meiner console.log ist MyTimeDefinition {} Wie kann ich die Variable newMyTimeDefinition erstellen, die alle Attribute der Klasse und nicht nur ein leeres Objekt hat?

Antwort

0

Sie müssen eine constructor in MyTimeDefinition Klasse erstellen, in der Sie den Variablen innerhalb Ihrer Klasse einige Werte hinzufügen.
Etwas wie folgt aus:

export class MyTimeDefinition { 
    ... 
    //Some other variable 
    constructor(){ 
     this.mystringvariable = "my string value"; 
    } 
} 

Und wie Sie sehen werden, wenn Sie eine neue Klasse intensiv durch den Aufruf der Konstruktor die Variablen der Klasse erstellen, werden nicht leer sein.

+0

Ich habe den Konstruktor in meiner Klasse hinzugefügt, wie Sie sagten, aber jetzt bekomme ich "Kann die Eigenschaft 'SelectedLanguage' von undefined" aus irgendeinem Grund nicht festlegen, aber nach VS sollte es definiert werden. – Nicolas

+1

Da Sie zuerst das Description-Objekt instanziieren müssen und dann versuchen, auf die SelectedLanguage zuzugreifen – Tinwor

Verwandte Themen