2017-04-03 2 views
2

Wenn ich eine Objektklasse in angular2 erstelle, sollte ich Werte inline oder in einem Konstruktor initialisieren? Ist da ein Unterschied?Standardeigenschaftswerte in Angular2 - Konstruktor oder Inline?

export class Foo { 
    id: string; 
    name: string = ''; 
    url: string = ''; 
} 

vs

export class Foo { 
    id: string; 
    name: string; 
    url: string; 

    constructor() { 
    this.name = ''; 
    this.url = ''; 
    } 
} 
+0

Diese Frage alles über Typoskript ist, und nicht wirklich über angular2 überhaupt. – StriplingWarrior

Antwort

2

eine Eigenschaft Inline-Initialisierung ist prägnanter, und hält den Standardwert der Immobilie mehr in Zusammenhang mit seiner Erklärung.

Durch das Initialisieren einer Eigenschaft im Konstruktor können Sie beim Initialisieren der Eigenschaft Konstruktorparameter verwenden. Sie können die Deklarationsreihenfolge auch von der Reihenfolge trennen, in der die Werte initialisiert werden (z. B. wenn der Anfangswert einer Eigenschaft von dem eines anderen abhängt).

Welches Sie in Fällen verwenden sollten, in denen Sie nicht die Flexibilität benötigen, die der Konstruktor Ihnen gibt, wird größtenteils eine Frage der persönlichen Stilpräferenz sein.

2

Es gibt keinen Unterschied in generierten JS zwischen den beiden. Beim Kompilieren des TypeScript-Compilers werden Werte, die inline innerhalb des Konstruktors initialisiert wurden, einfach eingefügt.

Probieren Sie es hier aus: https://www.typescriptlang.org/play/

Verwandte Themen