From: 丶远方 Date: Wed, 13 Mar 2024 14:57:33 +0000 (+0800) Subject: types: make instrumentations' types more succinct (#8558) X-Git-Tag: v3.4.22~55 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=384591a2a1918a4dbb668770a617ef5e5d8cf174;p=thirdparty%2Fvuejs%2Fcore.git types: make instrumentations' types more succinct (#8558) Co-authored-by: Haoqun Jiang --- diff --git a/packages/reactivity/src/collectionHandlers.ts b/packages/reactivity/src/collectionHandlers.ts index 2b7785ae7e..7c4b36fbe9 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,