Browse Source

fix(preferences): type custom preference updates

pull/8374/head
kilisamemarisaaa 3 weeks ago
parent
commit
3fb19dcd09
  1. 5
      .changeset/typed-custom-preferences-update.md
  2. 21
      packages/@core/preferences/__tests__/preferences-types.test.ts
  3. 6
      packages/@core/preferences/src/preferences.ts

5
.changeset/typed-custom-preferences-update.md

@ -0,0 +1,5 @@
---
'@vben-core/preferences': patch
---
fix(@vben-core/preferences): type custom preference updates

21
packages/@core/preferences/__tests__/preferences-types.test.ts

@ -0,0 +1,21 @@
import { describe, expectTypeOf, it } from 'vitest';
import type { DeepPartial } from '@vben-core/typings';
import { updateCustomPreferences } from '../src';
interface ProjectPreferences {
defaultTableSize: number;
tenantMode: 'multi' | 'single';
}
describe('custom preferences types', () => {
it('accepts a typed partial update', () => {
const updateProjectPreferences =
updateCustomPreferences<ProjectPreferences>;
expectTypeOf(updateProjectPreferences)
.parameter(0)
.toEqualTypeOf<DeepPartial<ProjectPreferences>>();
});
});

6
packages/@core/preferences/src/preferences.ts

@ -188,7 +188,11 @@ class PreferenceManager {
* 更新扩展偏好设置
* @param updates - 要更新的扩展偏好设置
*/
updateCustomPreferences = (updates: DeepPartial<object>) => {
updateCustomPreferences = <
TCustomPreferences extends object = CustomPreferencesRecord,
>(
updates: DeepPartial<TCustomPreferences>,
) => {
if (!this.customPreferencesExtension) {
return;
}

Loading…
Cancel
Save