in fixtures/jsii-calc/lib/compliance.ts [2319:2338]
public static isStructA(struct: StructA | StructB): struct is StructA {
const keys = new Set(Object.keys(struct));
switch (keys.size) {
case 1:
return keys.has('requiredString');
case 2:
return (
keys.has('requiredString') &&
(keys.has('optionalNumber') || keys.has('optionalString'))
);
case 3:
return (
keys.has('requiredString') &&
keys.has('optionalNumber') &&
keys.has('optionalString')
);
default:
return false;
}
}