|
|
@@ -10,21 +10,24 @@ export interface WritableComputedRef<T> extends Ref<T> {
|
|
|
readonly effect: ReactiveEffect<T>
|
|
|
}
|
|
|
|
|
|
+export type ComputedGetter<T> = () => T
|
|
|
+export type ComputedSetter<T> = (v: T) => void
|
|
|
+
|
|
|
export interface WritableComputedOptions<T> {
|
|
|
- get: () => T
|
|
|
- set: (v: T) => void
|
|
|
+ get: ComputedGetter<T>
|
|
|
+ set: ComputedSetter<T>
|
|
|
}
|
|
|
|
|
|
-export function computed<T>(getter: () => T): ComputedRef<T>
|
|
|
+export function computed<T>(getter: ComputedGetter<T>): ComputedRef<T>
|
|
|
export function computed<T>(
|
|
|
options: WritableComputedOptions<T>
|
|
|
): WritableComputedRef<T>
|
|
|
export function computed<T>(
|
|
|
- getterOrOptions: (() => T) | WritableComputedOptions<T>
|
|
|
+ getterOrOptions: ComputedGetter<T> | WritableComputedOptions<T>
|
|
|
): any {
|
|
|
const isReadonly = isFunction(getterOrOptions)
|
|
|
const getter = isReadonly
|
|
|
- ? (getterOrOptions as (() => T))
|
|
|
+ ? (getterOrOptions as ComputedGetter<T>)
|
|
|
: (getterOrOptions as WritableComputedOptions<T>).get
|
|
|
const setter = isReadonly
|
|
|
? __DEV__
|