diff options
| author | Linca <41134017+Lhcfl@users.noreply.github.com> | 2024-11-06 21:01:58 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-11-06 22:01:58 +0900 |
| commit | f1eb17f66c75f09e884a41be821cccef363ecee7 (patch) | |
| tree | 88905f14568c6c3bb2947e598563fe10e20b6e54 /packages/frontend/src | |
| parent | fix(backend): FTT無効時にユーザーリストタイムラインが使用... (diff) | |
| download | misskey-f1eb17f66c75f09e884a41be821cccef363ecee7.tar.gz misskey-f1eb17f66c75f09e884a41be821cccef363ecee7.tar.bz2 misskey-f1eb17f66c75f09e884a41be821cccef363ecee7.zip | |
chore: little type trick in pizzax.ts (#14891)
Make `makeGetterSetter` take the correct type associated with getter and setter
Diffstat (limited to 'packages/frontend/src')
| -rw-r--r-- | packages/frontend/src/pizzax.ts | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/packages/frontend/src/pizzax.ts b/packages/frontend/src/pizzax.ts index ac325e923f..7740fe0d39 100644 --- a/packages/frontend/src/pizzax.ts +++ b/packages/frontend/src/pizzax.ts @@ -241,9 +241,13 @@ export class Storage<T extends StateDef> { * 特定のキーの、簡易的なgetter/setterを作ります * 主にvue上で設定コントロールのmodelとして使う用 */ - public makeGetterSetter<K extends keyof T>(key: K, getter?: (v: T[K]) => unknown, setter?: (v: unknown) => T[K]): { - get: () => T[K]['default']; - set: (value: T[K]['default']) => void; + public makeGetterSetter<K extends keyof T, R = T[K]['default']>( + key: K, + getter?: (v: T[K]['default']) => R, + setter?: (v: R) => T[K]['default'], + ): { + get: () => R; + set: (value: R) => void; } { const valueRef = ref(this.state[key]); @@ -265,7 +269,7 @@ export class Storage<T extends StateDef> { return valueRef.value; } }, - set: (value: unknown) => { + set: (value) => { const val = setter ? setter(value) : value; this.set(key, val); valueRef.value = val; |