Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript 扩展接口和应用超级接口的对象_Typescript - Fatal编程技术网

Typescript 扩展接口和应用超级接口的对象

Typescript 扩展接口和应用超级接口的对象,typescript,Typescript,让我们假设我有以下几点 export interface Project { id: number; name: string; description: string; metaModel: { name: string, id: number }; createdAt: string; lastEdited: string; visibilityLevel: VisibilityLevel; members: string[];

让我们假设我有以下几点

export interface Project {
    id: number;
    name: string;
    description: string;
    metaModel: { name: string, id: number };
    createdAt: string;
    lastEdited: string;
    visibilityLevel: VisibilityLevel;
    members: string[];
    m0files: M0File[];
}
我这样扩展它

interface ProjectAndMembership extends Project{
    owner: boolean;
}
如何将Project的对象/变量应用于新接口ProjectMembership,以便只需为所有者值提供布尔值

如何将Project的对象/变量应用于新接口ProjectMembership,以便只需为所有者值提供布尔值

您至少有两种选择:

  • 创建一个新对象,可能通过
    对象。分配

    let x:ProjectAndMembership = Object.assign({}, {owner: true}, theProject);
    

  • 使用类型断言,只需将属性添加到现有对象:

    let x:ProjectAndMembership = theProject as ProjectAndMembership;
    x.owner = true;
    

  • 我倾向于1