typescript fake event Пользовательский объект События совместимый с обычными событиями

С помощью утверждения типа (as) можно убедить TS, что ваш объект является полноценным событием, напр. пример конструктора такого события для React:

export const createEventLikeObject =
    (name: string, value: any = '', dataset: StringKeyObject = {}) => {
        return {
            target: {
                name: name,
                value: value,
                dataset: dataset,
            }
        } as React.ChangeEvent<HTMLInputElement>;
    };

-- эта функция может использоваться для упаковки аргументов в тот формат (единого объекта события), который ожидают функции-обработчики.