Skip to content

Commit

Permalink
fix: Revert "fix(types/ref): allow getter and setter types to be unre…
Browse files Browse the repository at this point in the history
…lated (#11442)"

This reverts commit e0b2975.

This change requires TypeScript 5.1 so it is moved to a minor release.
  • Loading branch information
yyx990803 committed Aug 7, 2024
1 parent 3a56315 commit b1abac0
Show file tree
Hide file tree
Showing 4 changed files with 4 additions and 23 deletions.
10 changes: 0 additions & 10 deletions packages/dts-test/ref.test-d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -172,16 +172,6 @@ describe('ref with generic', <T extends { name: string }>() => {
expectType<string>(ss.value.name)
})

describe('allow getter and setter types to be unrelated', <T>() => {
const a = { b: ref(0) }
const c = ref(a)
c.value = a

const d = {} as T
const e = ref(d)
e.value = d
})

// shallowRef
type Status = 'initial' | 'ready' | 'invalidating'
const shallowStatus = shallowRef<Status>('initial')
Expand Down
8 changes: 0 additions & 8 deletions packages/dts-test/watch.test-d.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import {
type ComputedRef,
type MaybeRef,
type Ref,
computed,
defineComponent,
Expand Down Expand Up @@ -204,10 +203,3 @@ defineComponent({
expectType<{ foo: string }>(value)
})
}

{
const css: MaybeRef<string> = ''
watch(ref(css), value => {
expectType<string>(value)
})
}
7 changes: 3 additions & 4 deletions packages/reactivity/src/ref.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,8 @@ import { warn } from './warning'
declare const RefSymbol: unique symbol
export declare const RawSymbol: unique symbol

export interface Ref<T = any, S = T> {
get value(): T
set value(_: S)
export interface Ref<T = any> {
value: T
/**
* Type differentiator only.
* We need this to be in public d.ts but don't want it to show up in IDE
Expand Down Expand Up @@ -109,7 +108,7 @@ export function isRef(r: any): r is Ref {
* @param value - The object to wrap in the ref.
* @see {@link https://vuejs.org/api/reactivity-core.html#ref}
*/
export function ref<T>(value: T): Ref<UnwrapRef<T>, UnwrapRef<T> | T>
export function ref<T>(value: T): Ref<UnwrapRef<T>>
export function ref<T = any>(): Ref<T | undefined>
export function ref(value?: unknown) {
return createRef(value, false)
Expand Down
2 changes: 1 addition & 1 deletion packages/runtime-core/src/apiWatch.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ import { useSSRContext } from './helpers/useSsrContext'

export type WatchEffect = (onCleanup: OnCleanup) => void

export type WatchSource<T = any> = Ref<T, any> | ComputedRef<T> | (() => T)
export type WatchSource<T = any> = Ref<T> | ComputedRef<T> | (() => T)

export type WatchCallback<V = any, OV = any> = (
value: V,
Expand Down

0 comments on commit b1abac0

Please sign in to comment.