mirror of https://github.com/vuejs/core.git
types: make instrumentations' types more succinct (#8558)
Co-authored-by: Haoqun Jiang <haoqunjiang@gmail.com>
This commit is contained in:
parent
d46df6bdb1
commit
384591a2a1
|
@ -237,8 +237,10 @@ function createReadonlyMethod(type: TriggerOpTypes): Function {
|
|||
}
|
||||
}
|
||||
|
||||
type Instrumentations = Record<string | symbol, Function | number>
|
||||
|
||||
function createInstrumentations() {
|
||||
const mutableInstrumentations: Record<string, Function | number> = {
|
||||
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<string, Function | number> = {
|
||||
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<string, Function | number> = {
|
||||
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<string, Function | number> = {
|
||||
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,
|
||||
|
|
Loading…
Reference in New Issue