From 880d6db83fb172f8aae8342b04894698a03f5606 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=B6=E8=BF=9C=E6=96=B9?= Date: Wed, 5 Jul 2023 09:40:33 +0800 Subject: [PATCH] chore: improve the types for $set and $delete --- src/core/observer/index.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/core/observer/index.ts b/src/core/observer/index.ts index 9988fb8687f..02d19150b8b 100644 --- a/src/core/observer/index.ts +++ b/src/core/observer/index.ts @@ -218,7 +218,11 @@ export function defineReactive( * already exist. */ export function set(array: T[], key: number, value: T): T -export function set(object: object, key: string | number, value: T): T +export function set, K extends keyof T>( + object: T, + key: K, + value: T[K] +): T export function set( target: any[] | Record, key: any, @@ -278,7 +282,10 @@ export function set( * Delete a property and trigger change if necessary. */ export function del(array: T[], key: number): void -export function del(object: object, key: string | number): void +export function del, K extends keyof T>( + object: T, + key: K +): void export function del(target: any[] | object, key: any) { if (__DEV__ && (isUndef(target) || isPrimitive(target))) { warn(