Typescript împarte obiectul în proprietăți din mai multe interfețe
Mă întrebam dacă este posibil să merg de la
interface AnB extends InterFaceA, InterfaceB
const aAndB: AnB = {etc etc}
back to
const valuesFromInterfaceA = all values from aAndB that exist on InterfaceA
const valuesFromInterfaceB = all values from aAndB that exist on InterfaceB
Fără a ști exact ce proprietăți oferă InterfaceA/InterfaceB obiectului.
Răspuns #1
cu import * as _ from 'lodash'; și cunoscând toți membrii fiecărui InterFaceA sau InterFaceB, poți folosi
const valuesFromInterfaceA = _.pick(aAndB, 'memberFromA');
sau
const valuesFromInterfaceA = _.omit(aAndB, 'memberFromB');
Răspunsul #2
Dacă intenția este intellisense, deoarece folosești TypeScript, ai putea pur și simplu să atribui un tip variabilelor, astfel:
interface AnB extends InterFaceA, InterFaceB
const aAndB: AnB = { etc etc }
const valuesFromInterfaceA: InterFaceA = aAndB as InterFaceA
const valuesFromInterfaceB: InterFaceB = aAndB as InterFaceB
