2017-02-11 154 views
3

我有一個函數,它接受一個對象並將它與另一個對象合併。我希望能夠有一個通用的T表示正在採取的對象,即Typescript知道輸出對象包含相同的鍵,但也有新的鍵。有沒有辦法使用TypeScript泛型進行傳播操作?

export interface ObjFactory<T> { 
    someNewProp: string 
    otherNewProp: string 
    ...T 
} 

export interface InputObject { 
    inputProp: string 
} 

然後輸出對象將被作爲代表

{ 
    someNewProp: string 
    otherNewProp: string 
    inputProp: string 
} 

有沒有辦法實現類似這樣的東西嗎?

回答

2

如果您很樂意導出type而不是接口,則可以使用Type Intersection來實現此目的。

export type ObjFactory<T> = T & { 
    someNewProp: string 
    otherNewProp: string 
} 

export interface InputObject { 
    inputProp: string 
} 

唯一的缺點type AFAIK是類和接口不能擴展它們。

相關問題