chore: comments [ci skip]
This commit is contained in:
		
							parent
							
								
									51e43e0799
								
							
						
					
					
						commit
						118502a4b8
					
				@ -59,6 +59,28 @@ function getTargetType(value: Target) {
 | 
			
		||||
// only unwrap nested ref
 | 
			
		||||
type UnwrapNestedRefs<T> = T extends Ref ? T : UnwrapRef<T>
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Creates a reactive copy of the original object.
 | 
			
		||||
 *
 | 
			
		||||
 * The reactive conversion is "deep"—it affects all nested properties. In the
 | 
			
		||||
 * ES2015 Proxy based implementation, the returned proxy is **not** equal to the
 | 
			
		||||
 * original object. It is recommended to work exclusively with the reactive
 | 
			
		||||
 * proxy and avoid relying on the original object.
 | 
			
		||||
 *
 | 
			
		||||
 * A reactive object also automatically unwraps refs contained in it, so you
 | 
			
		||||
 * don't need to use `.value` when accessing and mutating their value:
 | 
			
		||||
 *
 | 
			
		||||
 * ```js
 | 
			
		||||
 * const count = ref(0)
 | 
			
		||||
 * const obj = reactive({
 | 
			
		||||
 *   count
 | 
			
		||||
 * })
 | 
			
		||||
 *
 | 
			
		||||
 * obj.count++
 | 
			
		||||
 * obj.count // -> 1
 | 
			
		||||
 * count.value // -> 1
 | 
			
		||||
 * ```
 | 
			
		||||
 */
 | 
			
		||||
export function reactive<T extends object>(target: T): UnwrapNestedRefs<T>
 | 
			
		||||
export function reactive(target: object) {
 | 
			
		||||
  // if trying to observe a readonly proxy, return the readonly version.
 | 
			
		||||
@ -73,9 +95,11 @@ export function reactive(target: object) {
 | 
			
		||||
  )
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Return a reactive-copy of the original object, where only the root level
 | 
			
		||||
// properties are reactive, and does NOT unwrap refs nor recursively convert
 | 
			
		||||
// returned properties.
 | 
			
		||||
/**
 | 
			
		||||
 * Return a shallowly-reactive copy of the original object, where only the root
 | 
			
		||||
 * level properties are reactive. It also does not auto-unwrap refs (even at the
 | 
			
		||||
 * root level).
 | 
			
		||||
 */
 | 
			
		||||
export function shallowReactive<T extends object>(target: T): T {
 | 
			
		||||
  return createReactiveObject(
 | 
			
		||||
    target,
 | 
			
		||||
@ -107,6 +131,10 @@ export type DeepReadonly<T> = T extends Builtin
 | 
			
		||||
                  ? { readonly [K in keyof T]: DeepReadonly<T[K]> }
 | 
			
		||||
                  : Readonly<T>
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Creates a readonly copy of the original object. Note the returned copy is not
 | 
			
		||||
 * made reactive, but `readonly` can be called on an already reactive object.
 | 
			
		||||
 */
 | 
			
		||||
export function readonly<T extends object>(
 | 
			
		||||
  target: T
 | 
			
		||||
): DeepReadonly<UnwrapNestedRefs<T>> {
 | 
			
		||||
@ -118,10 +146,12 @@ export function readonly<T extends object>(
 | 
			
		||||
  )
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Return a reactive-copy of the original object, where only the root level
 | 
			
		||||
// properties are readonly, and does NOT unwrap refs nor recursively convert
 | 
			
		||||
// returned properties.
 | 
			
		||||
// This is used for creating the props proxy object for stateful components.
 | 
			
		||||
/**
 | 
			
		||||
 * Returns a reactive-copy of the original object, where only the root level
 | 
			
		||||
 * properties are readonly, and does NOT unwrap refs nor recursively convert
 | 
			
		||||
 * returned properties.
 | 
			
		||||
 * This is used for creating the props proxy object for stateful components.
 | 
			
		||||
 */
 | 
			
		||||
export function shallowReadonly<T extends object>(
 | 
			
		||||
  target: T
 | 
			
		||||
): Readonly<{ [K in keyof T]: UnwrapNestedRefs<T[K]> }> {
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user