Skip to main content

CompositionTypeSatisfiesEnum

Type Aliases

CompositionTypeSatisfiesEnum

Ƭ CompositionTypeSatisfiesEnum<T, Enum>: unknown

Helper type to validate that a union of interfaces with a field of type that is based on an enum is complete.

For example:

enum ObjectiveType {
FOO,
BAR,
BAZ,
}

interface FooObjective {
type: ObjectiveType.FOO;
fooThing: number;
}

interface BarObjective {
type: ObjectiveType.BAR;
barThing: string;
}

type Objective = FooObjective | BarObjective;
type _Test = CompositionTypeSatisfiesEnum<Objective, ObjectiveType>;

In this example, Test would be flagged by TypeScript because Objective does not contain an entry for BazObjective.

Type parameters

NameType
Textends Object
Enumextends T["type"]

Defined in

packages/isaacscript-common/src/types/CompositionTypeSatisfiesEnum.ts:31