Skip to content

Commit f1eb17f

Browse files
authored
chore: little type trick in pizzax.ts (#14891)
Make `makeGetterSetter` take the correct type associated with getter and setter
1 parent b1c8221 commit f1eb17f

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

packages/frontend/src/pizzax.ts

+8-4
Original file line numberDiff line numberDiff line change
@@ -241,9 +241,13 @@ export class Storage<T extends StateDef> {
241241
* 特定のキーの、簡易的なgetter/setterを作ります
242242
* 主にvue上で設定コントロールのmodelとして使う用
243243
*/
244-
public makeGetterSetter<K extends keyof T>(key: K, getter?: (v: T[K]) => unknown, setter?: (v: unknown) => T[K]): {
245-
get: () => T[K]['default'];
246-
set: (value: T[K]['default']) => void;
244+
public makeGetterSetter<K extends keyof T, R = T[K]['default']>(
245+
key: K,
246+
getter?: (v: T[K]['default']) => R,
247+
setter?: (v: R) => T[K]['default'],
248+
): {
249+
get: () => R;
250+
set: (value: R) => void;
247251
} {
248252
const valueRef = ref(this.state[key]);
249253

@@ -265,7 +269,7 @@ export class Storage<T extends StateDef> {
265269
return valueRef.value;
266270
}
267271
},
268-
set: (value: unknown) => {
272+
set: (value) => {
269273
const val = setter ? setter(value) : value;
270274
this.set(key, val);
271275
valueRef.value = val;

0 commit comments

Comments
 (0)