2017-05-07 100 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} 
];