types(watch): better typing when watching multiple sources (#2425)

This commit is contained in:
Zcating
2020-12-05 05:32:26 +08:00
committed by GitHub
parent 47b3652ecd
commit d2d27b2e66
2 changed files with 34 additions and 9 deletions

View File

@@ -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)
})