Hvordan gjør jeg en Intersection-type valgfri i TypeScript
interface TypeA {
a: string
b: string
}
interface TypeB {
c: string
}
nå vil jeg lage en TypeC, a og b er valgfritt, c er påkrevd.
interface TypeC {
a?: string
b?: string
c: string
}
finnes det noen snarvei for å gjøre dette? for eksempel:
// type TypeC = TypeA? & TypeB
Jeg synes det er nyttig når TypeA er enorm
Svar #1
lekeplass
interface TypeA {
a: string
b: string
}
interface TypeB {
c: string
}
// First way using extends and Partial
interface TypeC extends Partial<TypeA>, TypeB {
// ...
}
// Second way using & and Partial
type TypeD = Partial<TypeA> & TypeB;
const variableC: TypeC = {
c: '',
};
const variableD: TypeD = {
c: '',
};
