export type State = { value: T; v: T; }; export const state = (value: T, renew: () => boolean): State => { let result = value; return { get value() { return result; }, get v() { return result; }, set value(newValue: T) { result = newValue; renew(); }, set v(newValue: T) { result = newValue; renew(); }, }; };