diff --git a/packages/compiler-core/src/transforms/vFor.ts b/packages/compiler-core/src/transforms/vFor.ts index 0dca0ba9a..a639caf2c 100644 --- a/packages/compiler-core/src/transforms/vFor.ts +++ b/packages/compiler-core/src/transforms/vFor.ts @@ -263,7 +263,7 @@ export function processFor( dir: DirectiveNode, context: TransformContext, processCodegen?: (forNode: ForNode) => (() => void) | undefined, -) { +): (() => void) | undefined { if (!dir.exp) { context.onError( createCompilerError(ErrorCodes.X_V_FOR_NO_EXPRESSION, dir.loc), diff --git a/packages/compiler-sfc/src/script/defineModel.ts b/packages/compiler-sfc/src/script/defineModel.ts index 050828002..a0b5e11fe 100644 --- a/packages/compiler-sfc/src/script/defineModel.ts +++ b/packages/compiler-sfc/src/script/defineModel.ts @@ -114,7 +114,7 @@ export function processDefineModel( return true } -export function genModelProps(ctx: ScriptCompileContext) { +export function genModelProps(ctx: ScriptCompileContext): string | undefined { if (!ctx.hasDefineModelCall) return const isProd = !!ctx.options.isProd diff --git a/packages/reactivity/src/ref.ts b/packages/reactivity/src/ref.ts index 6b8d54181..b47a4cac0 100644 --- a/packages/reactivity/src/ref.ts +++ b/packages/reactivity/src/ref.ts @@ -275,7 +275,7 @@ export function proxyRefs( objectWithRefs: T, ): ShallowUnwrapRef { return isReactive(objectWithRefs) - ? objectWithRefs + ? (objectWithRefs as any) : new Proxy(objectWithRefs, shallowUnwrapHandlers) } diff --git a/packages/runtime-core/src/scheduler.ts b/packages/runtime-core/src/scheduler.ts index b40c31d39..dcdd81bc4 100644 --- a/packages/runtime-core/src/scheduler.ts +++ b/packages/runtime-core/src/scheduler.ts @@ -47,16 +47,21 @@ const pendingPostFlushCbs: SchedulerJob[] = [] let activePostFlushCbs: SchedulerJob[] | null = null let postFlushIndex = 0 -const resolvedPromise = /*@__PURE__*/ Promise.resolve() as Promise +const resolvedPromise = /*@__PURE__*/ Promise.resolve() let currentFlushPromise: Promise | null = null const RECURSION_LIMIT = 100 type CountMap = Map -export function nextTick( +export function nextTick(): Promise +export function nextTick( this: T, - fn?: (this: T) => R, -): Promise> { + fn: (this: T) => R | Promise, +): Promise +export function nextTick( + this: T, + fn?: (this: T) => R | Promise, +): Promise { const p = currentFlushPromise || resolvedPromise return fn ? p.then(this ? fn.bind(this) : fn) : p } @@ -113,7 +118,9 @@ export function queueJob(job: SchedulerJob): void { function queueFlush() { if (!currentFlushPromise) { - currentFlushPromise = resolvedPromise.then(flushJobs) + currentFlushPromise = resolvedPromise.then(() => { + flushJobs() + }) } }