userRepository.save(user);
user.changeFirstname('John2'); // проверяем вход => записываем в User.firstname
геттеры нужны на случай если исходное имя поля изменится, чтобы ничего в публичном апи не сломалось.
Это понятно, но изменяться будет он-же, он же и хранит логику для полей.
Прокси хорошо - но от дублирования не спасает, а это основная проблема сейчас.
Потеряется user.field, user.v.field странно выглядит.
Без (кривых и некрасивых) костылей - низя.
export const useEmitter = <EM extends Record<string, any>>() => <K extends keyof EM>(event: K) => { ...
const emitTest1 = useEmitter<TableEventMap>()("cell:hover");
const emitTest2 = useEmitter<TableEventMap>()("test2");
Смотря насколько рандомно. Но вот что они точно не делают, так это не нажимают одну и ту же кнопочку в течении часов с идентичным интервалом.
Очень легко. Всего лишь надо написать алгоритм, который вычислит, что это именно равномерное распределение в определённом диапазоне.
При этом сделать рандом с неравномерным распределением ещё проще.