diff --git a/packages/reactivity/src/collectionHandlers.ts b/packages/reactivity/src/collectionHandlers.ts index 2b7785ae7eb..7c4b36fbe94 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,