fix(types): fix ToRefs type on union value types

fix #2687
This commit is contained in:
Evan You
2020-12-02 14:58:03 -05:00
parent 24a7a2db6c
commit e315d84936
2 changed files with 30 additions and 3 deletions

View File

@@ -8,7 +8,8 @@ import {
expectType,
proxyRefs,
toRef,
toRefs
toRefs,
ToRefs
} from './index'
function plainType(arg: number | Ref<number>) {
@@ -28,7 +29,6 @@ function plainType(arg: number | Ref<number>) {
const nestedRef = ref({
foo: ref(1)
})
expectType<Ref<{ foo: number }>>(nestedRef)
expectType<{ foo: number }>(nestedRef.value)
// ref boolean
@@ -171,3 +171,26 @@ expectType<{
a: Ref<number>
b: Ref<number>
}>(objRefs)
// #2687
interface AppData {
state: 'state1' | 'state2' | 'state3'
}
const data: ToRefs<AppData> = toRefs(
reactive({
state: 'state1'
})
)
switch (data.state.value) {
case 'state1':
data.state.value = 'state2'
break
case 'state2':
data.state.value = 'state3'
break
case 'state3':
data.state.value = 'state1'
break
}