From 384591a2a1918a4dbb668770a617ef5e5d8cf174 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=B6=E8=BF=9C=E6=96=B9?= Date: Wed, 13 Mar 2024 22:57:33 +0800 Subject: [PATCH] types: make instrumentations' types more succinct (#8558) Co-authored-by: Haoqun Jiang --- packages/reactivity/src/collectionHandlers.ts | 38 +++++++++---------- 1 file changed, 17 insertions(+), 21 deletions(-) diff --git a/packages/reactivity/src/collectionHandlers.ts b/packages/reactivity/src/collectionHandlers.ts index 2b7785ae7..7c4b36fbe 100644 --- a/packages/reactivity/src/collectionHandlers.ts +++ b/packages/reactivity/src/collectionHandlers.ts @@ -237,8 +237,10 @@ function createReadonlyMethod(type: TriggerOpTypes): Function { } } +type Instrumentations = Record + function createInstrumentations() { - const mutableInstrumentations: Record = { + const mutableInstrumentations: Instrumentations = { get(this: MapTypes, key: unknown) { return get(this, key) }, @@ -253,7 +255,7 @@ function createInstrumentations() { forEach: createForEach(false, false), } - const shallowInstrumentations: Record = { + const shallowInstrumentations: Instrumentations = { get(this: MapTypes, key: unknown) { return get(this, key, false, true) }, @@ -268,7 +270,7 @@ function createInstrumentations() { forEach: createForEach(false, true), } - const readonlyInstrumentations: Record = { + const readonlyInstrumentations: Instrumentations = { get(this: MapTypes, key: unknown) { return get(this, key, true) }, @@ -285,7 +287,7 @@ function createInstrumentations() { forEach: createForEach(true, false), } - const shallowReadonlyInstrumentations: Record = { + const shallowReadonlyInstrumentations: Instrumentations = { get(this: MapTypes, key: unknown) { return get(this, key, true, true) }, @@ -302,24 +304,18 @@ function createInstrumentations() { forEach: createForEach(true, true), } - const iteratorMethods = ['keys', 'values', 'entries', Symbol.iterator] + const iteratorMethods = [ + 'keys', + 'values', + 'entries', + Symbol.iterator, + ] as const + iteratorMethods.forEach(method => { - mutableInstrumentations[method as string] = createIterableMethod( - method, - false, - false, - ) - readonlyInstrumentations[method as string] = createIterableMethod( - method, - true, - false, - ) - shallowInstrumentations[method as string] = createIterableMethod( - method, - false, - true, - ) - shallowReadonlyInstrumentations[method as string] = createIterableMethod( + mutableInstrumentations[method] = createIterableMethod(method, false, false) + readonlyInstrumentations[method] = createIterableMethod(method, true, false) + shallowInstrumentations[method] = createIterableMethod(method, false, true) + shallowReadonlyInstrumentations[method] = createIterableMethod( method, true, true,