2017-05-07 1 views
-1

Ich habe die folgende Schnittstelle:Typoskript: Verwenden von benutzerdefinierter Schnittstelle

export interface Member { 
    name: string, 
    isLoggedIn: boolean, 
    loginTime: Date 
} 

Ich mag würde eine Liste der Mitglieder über diese Schnittstelle erklären. Ich habe versucht, diese:

public members: Member[] = [ 
    {name: "John"}, 
    {name: "Cena"} 
]; 

Unfortunetly, bekomme ich folgende Fehlermeldung:

Type '{ name: string; }[]' is not assignable to type 'Member[]' 

Was ist der richtige Weg, ein Array von Objekten mit benutzerdefinierter Schnittstelle zu erklären, um es mit einem guten Praxis funktionieren?

Antwort

4

Eine Möglichkeit ist isLoggedIn und Login als optional zu erklären:

export interface Member 
{ 
    name: string; 
    isLoggedIn?: boolean; 
    loginTime?: Date; 
} 

let members: Member[] = [ 
    {name: "John"}, 
    {name: "Cena"} 
]; 

Ein anderer Weg ist der Standardwert zu liefern, wenn das Objekt zu erstellen:

export interface Member 
{ 
    name: string; 
    isLoggedIn: boolean; 
    loginTime: Date; 
} 

let members: Member[] = [ 
    {name: "John", isLoggedIn: false, loginTime: null}, 
    {name: "Cena", isLoggedIn: false, loginTime: null} 
]; 
Verwandte Themen