types(watch): better typing when watching multiple sources (#2425)
This commit is contained in:
@@ -11,8 +11,8 @@ watch(source, (value, oldValue) => {
|
||||
})
|
||||
|
||||
watch([source, source2, source3], (values, oldValues) => {
|
||||
expectType<(string | number)[]>(values)
|
||||
expectType<(string | number)[]>(oldValues)
|
||||
expectType<[string, string, number]>(values)
|
||||
expectType<[string, string, number]>(oldValues)
|
||||
})
|
||||
|
||||
// const array
|
||||
@@ -34,8 +34,10 @@ watch(
|
||||
watch(
|
||||
[source, source2, source3],
|
||||
(values, oldValues) => {
|
||||
expectType<(string | number)[]>(values)
|
||||
expectType<(string | number | undefined)[]>(oldValues)
|
||||
expectType<[string, string, number]>(values)
|
||||
expectType<[string | undefined, string | undefined, number | undefined]>(
|
||||
oldValues
|
||||
)
|
||||
},
|
||||
{ immediate: true }
|
||||
)
|
||||
@@ -61,3 +63,15 @@ watch(nestedRefSource, (v, ov) => {
|
||||
expectType<{ foo: number }>(v)
|
||||
expectType<{ foo: number }>(ov)
|
||||
})
|
||||
|
||||
const someRef = ref({ test: 'test' })
|
||||
const otherRef = ref({ a: 'b' })
|
||||
watch([someRef, otherRef], values => {
|
||||
const value1 = values[0]
|
||||
// no type error
|
||||
console.log(value1.test)
|
||||
|
||||
const value2 = values[1]
|
||||
// no type error
|
||||
console.log(value2.a)
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user