2017-09-16 49 views
0

我的界面此刻看起來像這樣。是否有可能重構它,所以屬性不會在兩者中重複。typescript嵌套對象,所以屬性不重複

export interface Navigation { 
    name: string; 
    roles: Array<number>; 
    sublinks: NavigationItem[]; 
} 

export interface NavigationItem { 
    name: string; 
    roles: Array<number>; 
    url: string; 
} 

回答

2
export interface NavigationBase { 
    name: string; 
    roles: number[]; 
} 

export interface Navigation extends NavigationBase { 
    sublinks: NavigationItem[]; 
} 

export interface NavigationItem extends NavigationBase { 
    url: string; 
}