Finnes det en måte å gjøre spread-operasjoner med TypeScript-generics på?
Jeg har en funksjon som tar inn et objekt og slår det sammen med et annet objekt. Jeg vil gjerne kunne ha en generisk T som representerer objektet som tas inn slik at Typescript vet at utdataobjektet inneholder de samme nøklene, men også har de nye nøklene.
export interface ObjFactory<T> {
someNewProp: string
otherNewProp: string
...T
}
export interface InputObject {
inputProp: string
}
Da ville utdataobjektet bli representert som
{
someNewProp: string
otherNewProp: string
inputProp: string
}
Finnes det en måte å oppnå noe lignende dette på?
Svar #1
Du kunne bruke Type Intersection for å oppnå dette hvis du er komfortabel med å eksportere types i stedet for grensesnitt.
export type ObjFactory<T> = T & {
someNewProp: string
otherNewProp: string
}
export interface InputObject {
inputProp: string
}
Den eneste ulempen med type så vidt jeg vet er at klasser og grensesnitt ikke kan utvide dem.
