2017-05-07 124 views
-1

我有以下接口:打字稿:使用自定義接口

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

我想聲明使用這個接口成員的名單。我嘗試這樣做:

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

偏偏,我得到以下錯誤:

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

什麼來聲明自定義接口的對象的數組,使其具有良好的工作實踐中的正確方法?

回答

4

一種方式是聲明isLoggedIn和logInTime作爲任選:

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

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

另一種方式是創建對象時提供默認值:

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

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