diff --git a/packages/reactivity/src/computed.ts b/packages/reactivity/src/computed.ts index ab0034a4cf1..6947b749749 100644 --- a/packages/reactivity/src/computed.ts +++ b/packages/reactivity/src/computed.ts @@ -15,7 +15,8 @@ export interface WritableComputedRef extends Ref { readonly effect: ReactiveEffect } -export type ComputedGetter = (...args: any[]) => T +export type ComputedGetter = () => T +export type ComputedGetterWithInstance = (...args: any[]) => T export type ComputedSetter = (v: T) => void export interface WritableComputedOptions { @@ -23,6 +24,11 @@ export interface WritableComputedOptions { set: ComputedSetter } +export interface WritableComputedOptionsWithInstance { + get: ComputedGetterWithInstance + set: ComputedSetter +} + export class ComputedRefImpl { public dep?: Dep = undefined diff --git a/packages/reactivity/src/index.ts b/packages/reactivity/src/index.ts index a7a03b8c573..382d635d11d 100644 --- a/packages/reactivity/src/index.ts +++ b/packages/reactivity/src/index.ts @@ -38,7 +38,9 @@ export { ComputedRef, WritableComputedRef, WritableComputedOptions, + WritableComputedOptionsWithInstance, ComputedGetter, + ComputedGetterWithInstance, ComputedSetter } from './computed' export { deferredComputed } from './deferredComputed' diff --git a/packages/runtime-core/src/componentOptions.ts b/packages/runtime-core/src/componentOptions.ts index 0d47e18c4af..6a5a313f771 100644 --- a/packages/runtime-core/src/componentOptions.ts +++ b/packages/runtime-core/src/componentOptions.ts @@ -46,8 +46,8 @@ import { } from './apiLifecycle' import { reactive, - ComputedGetter, - WritableComputedOptions + ComputedGetterWithInstance, + WritableComputedOptionsWithInstance } from '@vue/reactivity' import { ComponentObjectPropsOptions, @@ -360,7 +360,7 @@ export type ComponentOptionsMixin = ComponentOptionsBase< export type ComputedOptions = Record< string, - ComputedGetter | WritableComputedOptions + ComputedGetterWithInstance | WritableComputedOptionsWithInstance > export interface MethodOptions {