interface TypeA { type: "A"; param: string; } interface TypeB { type: "B"; param: string; } type ValidType = TypeA | TypeB; interface Wrapper { types: ValidType[]; } const foo: Wrapper[] = []; foo.push({ types: [{ type: "A" }] });