From 32262a9af58e075955dbbc61688f4cc94408df13 Mon Sep 17 00:00:00 2001 From: tomasvn Date: Thu, 6 Jun 2024 12:23:21 +0200 Subject: [PATCH] chore: use PropertyKey type (#11056) close #8559 --- packages/reactivity/src/reactiveEffect.ts | 2 +- packages/runtime-core/src/apiSetupHelpers.ts | 14 +++++++------- packages/runtime-core/src/compat/global.ts | 4 ++-- packages/runtime-core/src/components/KeepAlive.ts | 2 +- packages/runtime-core/src/helpers/useModel.ts | 2 +- packages/runtime-core/src/renderer.ts | 2 +- packages/runtime-core/src/vnode.ts | 4 ++-- packages/runtime-dom/src/jsx.ts | 2 +- 8 files changed, 16 insertions(+), 16 deletions(-) diff --git a/packages/reactivity/src/reactiveEffect.ts b/packages/reactivity/src/reactiveEffect.ts index 8e0674e92..8c6301c08 100644 --- a/packages/reactivity/src/reactiveEffect.ts +++ b/packages/reactivity/src/reactiveEffect.ts @@ -145,7 +145,7 @@ export function trigger( resetScheduling() } -export function getDepFromReactive(object: any, key: string | number | symbol) { +export function getDepFromReactive(object: any, key: PropertyKey) { const depsMap = targetMap.get(object) return depsMap && depsMap.get(key) } diff --git a/packages/runtime-core/src/apiSetupHelpers.ts b/packages/runtime-core/src/apiSetupHelpers.ts index 382bb30b3..486ee637e 100644 --- a/packages/runtime-core/src/apiSetupHelpers.ts +++ b/packages/runtime-core/src/apiSetupHelpers.ts @@ -215,7 +215,7 @@ export function defineSlots< return null as any } -export type ModelRef = Ref & +export type ModelRef = Ref & [ModelRef, Record] export type DefineModelOptions = { @@ -256,24 +256,24 @@ export type DefineModelOptions = { * const count = defineModel('count', { default: 0 }) * ``` */ -export function defineModel( +export function defineModel( options: { required: true } & PropOptions & DefineModelOptions, ): ModelRef -export function defineModel( +export function defineModel( options: { default: any } & PropOptions & DefineModelOptions, ): ModelRef -export function defineModel( +export function defineModel( options?: PropOptions & DefineModelOptions, ): ModelRef -export function defineModel( +export function defineModel( name: string, options: { required: true } & PropOptions & DefineModelOptions, ): ModelRef -export function defineModel( +export function defineModel( name: string, options: { default: any } & PropOptions & DefineModelOptions, ): ModelRef -export function defineModel( +export function defineModel( name: string, options?: PropOptions & DefineModelOptions, ): ModelRef diff --git a/packages/runtime-core/src/compat/global.ts b/packages/runtime-core/src/compat/global.ts index 22f7b5213..f64e7adf2 100644 --- a/packages/runtime-core/src/compat/global.ts +++ b/packages/runtime-core/src/compat/global.ts @@ -102,11 +102,11 @@ export type CompatVue = Pick & { /** * @deprecated Vue 3 no longer needs set() for adding new properties. */ - set(target: any, key: string | number | symbol, value: any): void + set(target: any, key: PropertyKey, value: any): void /** * @deprecated Vue 3 no longer needs delete() for property deletions. */ - delete(target: any, key: string | number | symbol): void + delete(target: any, key: PropertyKey): void /** * @deprecated use `reactive` instead. */ diff --git a/packages/runtime-core/src/components/KeepAlive.ts b/packages/runtime-core/src/components/KeepAlive.ts index e059b8928..326c2f95d 100644 --- a/packages/runtime-core/src/components/KeepAlive.ts +++ b/packages/runtime-core/src/components/KeepAlive.ts @@ -55,7 +55,7 @@ export interface KeepAliveProps { max?: number | string } -type CacheKey = string | number | symbol | ConcreteComponent +type CacheKey = PropertyKey | ConcreteComponent type Cache = Map type Keys = Set diff --git a/packages/runtime-core/src/helpers/useModel.ts b/packages/runtime-core/src/helpers/useModel.ts index b2670e576..f6fbca554 100644 --- a/packages/runtime-core/src/helpers/useModel.ts +++ b/packages/runtime-core/src/helpers/useModel.ts @@ -7,7 +7,7 @@ import type { NormalizedProps } from '../componentProps' import { watchSyncEffect } from '../apiWatch' export function useModel< - M extends string | number | symbol, + M extends PropertyKey, T extends Record, K extends keyof T, >(props: T, name: K, options?: DefineModelOptions): ModelRef diff --git a/packages/runtime-core/src/renderer.ts b/packages/runtime-core/src/renderer.ts index 542341b13..cbb08da7b 100644 --- a/packages/runtime-core/src/renderer.ts +++ b/packages/runtime-core/src/renderer.ts @@ -1908,7 +1908,7 @@ function baseCreateRenderer( const s2 = i // next starting index // 5.1 build key:index map for newChildren - const keyToNewIndexMap: Map = new Map() + const keyToNewIndexMap: Map = new Map() for (i = s2; i <= e2; i++) { const nextChild = (c2[i] = optimized ? cloneIfMounted(c2[i] as VNode) diff --git a/packages/runtime-core/src/vnode.ts b/packages/runtime-core/src/vnode.ts index d91532fb3..617bdf7ad 100644 --- a/packages/runtime-core/src/vnode.ts +++ b/packages/runtime-core/src/vnode.ts @@ -112,7 +112,7 @@ export type VNodeHook = // https://github.com/microsoft/TypeScript/issues/33099 export type VNodeProps = { - key?: string | number | symbol + key?: PropertyKey ref?: VNodeRef ref_for?: boolean ref_key?: string @@ -162,7 +162,7 @@ export interface VNode< type: VNodeTypes props: (VNodeProps & ExtraProps) | null - key: string | number | symbol | null + key: PropertyKey | null ref: VNodeNormalizedRef | null /** * SFC only. This is assigned on vnode creation using currentScopeId diff --git a/packages/runtime-dom/src/jsx.ts b/packages/runtime-dom/src/jsx.ts index 964d5481d..0c86434e9 100644 --- a/packages/runtime-dom/src/jsx.ts +++ b/packages/runtime-dom/src/jsx.ts @@ -1390,7 +1390,7 @@ type EventHandlers = { import type { VNodeRef } from '@vue/runtime-core' export type ReservedProps = { - key?: string | number | symbol + key?: PropertyKey ref?: VNodeRef ref_for?: boolean ref_key?: string