mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-18 04:26:01 +00:00
27 lines
453 B
TypeScript
27 lines
453 B
TypeScript
interface Reference<T> {
|
|
set(value: T);
|
|
get(): T;
|
|
reset(): void;
|
|
update(func: (arg: T) => T);
|
|
}
|
|
|
|
export default function createRef<T>(value: T): Reference<T> {
|
|
return {
|
|
value,
|
|
initValue: value,
|
|
|
|
set(value) {
|
|
this.value = value;
|
|
},
|
|
reset() {
|
|
this.value = this.initValue;
|
|
},
|
|
get() {
|
|
return this.value;
|
|
},
|
|
update(func) {
|
|
this.value = func(this.value);
|
|
},
|
|
} as Reference<T>;
|
|
}
|