]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
refactor(types/compat): improve the types for $set and $delete (#8719)
author远方os <yangpanteng@gmail.com>
Thu, 30 May 2024 10:27:38 +0000 (18:27 +0800)
committerGitHub <noreply@github.com>
Thu, 30 May 2024 10:27:38 +0000 (18:27 +0800)
packages/runtime-core/src/compat/instance.ts

index 18e745ca4e86d33e43eb542b89ddea36dcb940dd..7b89c5ad61ce23ea6297cd407180f1e09dfd800c 100644 (file)
@@ -43,8 +43,15 @@ export type LegacyPublicInstance = ComponentPublicInstance &
   LegacyPublicProperties
 
 export interface LegacyPublicProperties {
-  $set(target: object, key: string, value: any): void
-  $delete(target: object, key: string): void
+  $set<T extends Record<keyof any, any>, K extends keyof T>(
+    target: T,
+    key: K,
+    value: T[K]
+  ): void
+  $delete<T extends Record<keyof any, any>, K extends keyof T>(
+    target: T,
+    key: K
+  ): void
   $mount(el?: string | Element): this
   $destroy(): void
   $scopedSlots: Slots