]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
type: improve typing (#177)
author扩散性百万甜面包 <himself65@outlook.com>
Wed, 9 Oct 2019 18:01:53 +0000 (02:01 +0800)
committerEvan You <yyx990803@gmail.com>
Wed, 9 Oct 2019 18:01:53 +0000 (14:01 -0400)
packages/reactivity/src/computed.ts
packages/reactivity/src/reactive.ts
packages/reactivity/src/ref.ts
packages/runtime-core/src/createRenderer.ts
packages/runtime-core/src/h.ts

index 9f2ede36758dd3f751e0426a975cd488a6dea716..c1cf34cbb93c200968ff4cbcdb09b424681dc2c7 100644 (file)
@@ -2,9 +2,8 @@ import { effect, ReactiveEffect, activeReactiveEffectStack } from './effect'
 import { Ref, refSymbol, UnwrapNestedRefs } from './ref'
 import { isFunction, NOOP } from '@vue/shared'
 
-export interface ComputedRef<T> extends Ref<T> {
+export interface ComputedRef<T> extends WritableComputedRef<T> {
   readonly value: UnwrapNestedRefs<T>
-  readonly effect: ReactiveEffect
 }
 
 export interface WritableComputedRef<T> extends Ref<T> {
index b703154ee84498c9dbf10eaf778b876d7d782e7c..5fba5124703999d9f9d6f712b16712d7de25c072 100644 (file)
@@ -61,8 +61,7 @@ export function reactive(target: object) {
 
 export function readonly<T extends object>(
   target: T
-): Readonly<UnwrapNestedRefs<T>>
-export function readonly(target: object) {
+): Readonly<UnwrapNestedRefs<T>> {
   // value is a mutable observable, retrieve its original and return
   // a readonly version.
   if (reactiveToRaw.has(target)) {
index 113696bd45600d9ab3f49e5c0cd2d855853d27fc..9e000d979ae5e4a2936978ae17ff6c43ab00c267 100644 (file)
@@ -5,12 +5,12 @@ import { reactive } from './reactive'
 
 export const refSymbol = Symbol(__DEV__ ? 'refSymbol' : undefined)
 
-export interface Ref<T> {
+export interface Ref<T = any> {
   [refSymbol]: true
   value: UnwrapNestedRefs<T>
 }
 
-export type UnwrapNestedRefs<T> = T extends Ref<any> ? T : UnwrapRef<T>
+export type UnwrapNestedRefs<T> = T extends Ref ? T : UnwrapRef<T>
 
 const convert = (val: any): any => (isObject(val) ? reactive(val) : val)
 
@@ -30,7 +30,7 @@ export function ref<T>(raw: T): Ref<T> {
   return v as Ref<T>
 }
 
-export function isRef(v: any): v is Ref<any> {
+export function isRef(v: any): v is Ref {
   return v ? v[refSymbol] === true : false
 }
 
@@ -73,7 +73,7 @@ export type UnwrapRef<T> = {
   array: T extends Array<infer V> ? Array<UnwrapRef<V>> : T
   object: { [K in keyof T]: UnwrapRef<T[K]> }
   stop: T
-}[T extends Ref<any>
+}[T extends Ref
   ? 'ref'
   : T extends Array<any>
     ? 'array'
index 3a90d1e0f416e5f71630bbfd079b2e516e8c4550..8211a4bdc7291935dd5896b089149f84cda9a5ea 100644 (file)
@@ -1767,8 +1767,8 @@ export function createRenderer<
   }
 
   function setRef(
-    ref: string | Function | Ref<any>,
-    oldRef: string | Function | Ref<any> | null,
+    ref: string | Function | Ref,
+    oldRef: string | Function | Ref | null,
     parent: ComponentInternalInstance,
     value: HostNode | ComponentPublicInstance | null
   ) {
index 3a29607a586fbae36dc541599d9ce97c6dfc58eb..5b32f3b7c6b6b1aa34cadc4ca65b0796acda42c9 100644 (file)
@@ -50,7 +50,7 @@ h('div', null, {})
 export interface RawProps {
   [key: string]: any
   key?: string | number
-  ref?: string | Ref<any> | Function
+  ref?: string | Ref | Function
   // used to differ from a single VNode object as children
   _isVNode?: never
   // used to differ from Array children