我有两个接口,Workflow
和WorkflowVersion
workflow.model.ts
import { WorkflowVersion } from './workflow-version.model';
export interface Workflow{
name: string;
ID: number;
workflowVersions: WorkflowVersion[];
}
workflow-version.model.ts
export interface WorkflowVersion{
versionID: number;
lastPublished: string;
environmentID: number;
}
我想创建一个“拉平”两者的界面。这个新接口WorkflowFlat
应该包含两个接口的所有非对象类型属性。目前我有这个:
workflow-flat.model.ts
export interface WorkflowFlat {
name: string;
ID: number;
versionID: number;
lastPublished: string;
environmentID: number;
}
上面的模型可以达到目的,但是感觉很重复。如果我想在以后的description
中添加一个WorkflowVersion
属性,则必须记住还要将其添加到WorkflowFlat
中。有什么方法可以使模型自动从两个接口中获取所有属性,然后使用非对象接口创建一个新接口?
答案 0 :(得分:3)
亚伦·比尔(Aaron Beall)的答案很接近(很抱歉,我无法发表评论),但是它不能正确删除所有扩展object
的键,因此最终类型{{1 }}。
以下代码段通过重用tycho01/typical repo中的类型级帮助程序来实现目标:
key: never