#How do I get type checking on a generic parameter of unrelated interfaces?
11 messages · Page 1 of 1 (latest)
You could do something like this:
type AbstractUnrelatedInterface<V extends Discriminator> = InterfaceA | InterfaceB | InterfaceC
interface InterfaceA {
a: string;
}
interface InterfaceB {
b: boolean;
}
interface InterfaceC {
c: number;
}
My concern is forgetting to keep externalDiscriminatorTuple and the AbstractUnrelatedInterface in sync. Would that be an easy mistake to make?
I need the former for an unrelated purpose:
declare getNextDiscriminator(d: Discriminator): NextDiscriminator
// getNextDiscriminator('a') = 'b'
// getNextDiscriminator('b') = 'c'
// getNextDiscriminator('c') = never
Probably not