Skip to content

Commit 0bdd889

Browse files
authored
fix(types): fix ref(false) type to Ref<boolean> (#1028)
1 parent e422b8b commit 0bdd889

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

packages/reactivity/src/ref.ts

+4-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,10 @@ export function isRef(r: any): r is Ref {
2828
return r ? r._isRef === true : false
2929
}
3030

31-
export function ref<T>(value: T): T extends Ref ? T : Ref<UnwrapRef<T>>
31+
export function ref<T extends object>(
32+
value: T
33+
): T extends Ref ? T : Ref<UnwrapRef<T>>
34+
export function ref<T>(value: T): Ref<UnwrapRef<T>>
3235
export function ref<T = any>(): Ref<T | undefined>
3336
export function ref(value?: unknown) {
3437
return createRef(value)

test-dts/ref.test-d.ts

+10
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,16 @@ function plainType(arg: number | Ref<number>) {
2121
expectType<Ref<{ foo: number }>>(nestedRef)
2222
expectType<{ foo: number }>(nestedRef.value)
2323

24+
// ref boolean
25+
const falseRef = ref(false)
26+
expectType<Ref<boolean>>(falseRef)
27+
expectType<boolean>(falseRef.value)
28+
29+
// ref true
30+
const trueRef = ref<true>(true)
31+
expectType<Ref<true>>(trueRef)
32+
expectType<true>(trueRef.value)
33+
2434
// tuple
2535
expectType<[number, string]>(unref(ref([1, '1'])))
2636

0 commit comments

Comments
 (0)