import { createEventDispatcher } from '$runtime/internal/lifecycle'; const dispatch = createEventDispatcher<{ loaded: never change: string valid: boolean optional: number | null }>(); // @ts-expect-error: dispatch invalid event dispatch('some-event'); dispatch('loaded'); dispatch('loaded', null); dispatch('loaded', undefined); dispatch('loaded', undefined, { cancelable: true }); // @ts-expect-error: no detail accepted dispatch('loaded', 123); // @ts-expect-error: detail not provided dispatch('change'); dispatch('change', 'string'); dispatch('change', 'string', { cancelable: true }); // @ts-expect-error: wrong type of detail dispatch('change', 123); // @ts-expect-error: wrong type of detail dispatch('change', undefined); dispatch('valid', true); dispatch('valid', true, { cancelable: true }); // @ts-expect-error: wrong type of detail dispatch('valid', 'string'); dispatch('optional'); dispatch('optional', 123); dispatch('optional', 123, { cancelable: true }); dispatch('optional', null); dispatch('optional', undefined); dispatch('optional', undefined, { cancelable: true }); // @ts-expect-error: wrong type of optional detail dispatch('optional', 'string'); // @ts-expect-error: wrong type of option dispatch('optional', undefined, { cancelabled: true });