// @strict: true // @jsx: preserve // @skipLibCheck: true // @libFiles: lib.d.ts,react.d.ts interface A { isIt: true; text: string; } interface B { isIt: false; value: number; } type C = A | B; const isIt = Math.random() > 0.5; const c: C = isIt ? { isIt, text: 'hey' } : { isIt, value: 123 }; const cc: C = isIt ? { isIt: isIt, text: 'hey' } : { isIt: isIt, value: 123 }; type ComponentProps = | { optionalBool: true; mandatoryFn: () => void; } | { optionalBool: false; }; let Funk = (_props: ComponentProps) =>
Hello
; let Fail1 = () => { }} optionalBool={true} /> let Fail2 = () => { }} optionalBool={true as true} /> let True = true as true; let Fail3 = () => { }} optionalBool={True} /> let attrs2 = { optionalBool: true as true, mandatoryFn: () => { } } let Success = () =>