打字稿:使用自定义接口
问题描述:
我有以下接口:打字稿:使用自定义接口
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[]'
什么来声明自定义接口的对象的数组,使其具有良好的工作实践中的正确方法?
答
一种方式是声明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}
];