mirror of https://github.com/vuejs/core.git
chore(types): compatible with TS 5.8 (#12973)
This commit is contained in:
parent
7171defb45
commit
4810f1489f
|
|
@ -0,0 +1,31 @@
|
|||
import { nextTick } from 'vue'
|
||||
import { describe, expectType } from './utils'
|
||||
|
||||
describe('nextTick', async () => {
|
||||
expectType<Promise<void>>(nextTick())
|
||||
expectType<Promise<string>>(nextTick(() => 'foo'))
|
||||
expectType<Promise<string>>(nextTick(() => Promise.resolve('foo')))
|
||||
expectType<Promise<string>>(
|
||||
nextTick(() => Promise.resolve(Promise.resolve('foo'))),
|
||||
)
|
||||
|
||||
expectType<void>(await nextTick())
|
||||
expectType<string>(await nextTick(() => 'foo'))
|
||||
expectType<string>(await nextTick(() => Promise.resolve('foo')))
|
||||
expectType<string>(
|
||||
await nextTick(() => Promise.resolve(Promise.resolve('foo'))),
|
||||
)
|
||||
|
||||
nextTick().then(value => {
|
||||
expectType<void>(value)
|
||||
})
|
||||
nextTick(() => 'foo').then(value => {
|
||||
expectType<string>(value)
|
||||
})
|
||||
nextTick(() => Promise.resolve('foo')).then(value => {
|
||||
expectType<string>(value)
|
||||
})
|
||||
nextTick(() => Promise.resolve(Promise.resolve('foo'))).then(value => {
|
||||
expectType<string>(value)
|
||||
})
|
||||
})
|
||||
|
|
@ -275,7 +275,7 @@ export function proxyRefs<T extends object>(
|
|||
objectWithRefs: T,
|
||||
): ShallowUnwrapRef<T> {
|
||||
return isReactive(objectWithRefs)
|
||||
? objectWithRefs
|
||||
? (objectWithRefs as ShallowUnwrapRef<T>)
|
||||
: new Proxy(objectWithRefs, shallowUnwrapHandlers)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -53,10 +53,15 @@ let currentFlushPromise: Promise<void> | null = null
|
|||
const RECURSION_LIMIT = 100
|
||||
type CountMap = Map<SchedulerJob, number>
|
||||
|
||||
export function nextTick<T = void, R = void>(
|
||||
export function nextTick(): Promise<void>
|
||||
export function nextTick<T, R>(
|
||||
this: T,
|
||||
fn?: (this: T) => R,
|
||||
): Promise<Awaited<R>> {
|
||||
fn: (this: T) => R | Promise<R>,
|
||||
): Promise<R>
|
||||
export function nextTick<T, R>(
|
||||
this: T,
|
||||
fn?: (this: T) => R | Promise<R>,
|
||||
): Promise<void | R> {
|
||||
const p = currentFlushPromise || resolvedPromise
|
||||
return fn ? p.then(this ? fn.bind(this) : fn) : p
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue