Skip to content

Commit a9e8642

Browse files
unshameOleg Shibaev
authored andcommitted
types(reactivity): make sure getters defined with arrow functions work in options API
Add special versions of ComputedGetter and WritableComputedOptions that accept view model as argument
1 parent c40be73 commit a9e8642

File tree

3 files changed

+11
-3
lines changed

3 files changed

+11
-3
lines changed

packages/reactivity/src/computed.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,19 @@ export interface WritableComputedRef<T> extends Ref<T> {
1616
}
1717

1818
export type ComputedGetter<T> = () => T
19+
export type ComputedGetterWithVModel<T> = (vm: any) => T
1920
export type ComputedSetter<T> = (v: T) => void
2021

2122
export interface WritableComputedOptions<T> {
2223
get: ComputedGetter<T>
2324
set: ComputedSetter<T>
2425
}
2526

27+
export interface WritableComputedOptionsWithVModel<T> {
28+
get: ComputedGetterWithVModel<T>
29+
set: ComputedSetter<T>
30+
}
31+
2632
export class ComputedRefImpl<T> {
2733
public dep?: Dep = undefined
2834

packages/reactivity/src/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,9 @@ export {
3838
ComputedRef,
3939
WritableComputedRef,
4040
WritableComputedOptions,
41+
WritableComputedOptionsWithVModel,
4142
ComputedGetter,
43+
ComputedGetterWithVModel,
4244
ComputedSetter
4345
} from './computed'
4446
export { deferredComputed } from './deferredComputed'

packages/runtime-core/src/componentOptions.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@ import {
4646
} from './apiLifecycle'
4747
import {
4848
reactive,
49-
ComputedGetter,
50-
WritableComputedOptions
49+
ComputedGetterWithVModel,
50+
WritableComputedOptionsWithVModel
5151
} from '@vue/reactivity'
5252
import {
5353
ComponentObjectPropsOptions,
@@ -360,7 +360,7 @@ export type ComponentOptionsMixin = ComponentOptionsBase<
360360

361361
export type ComputedOptions = Record<
362362
string,
363-
ComputedGetter<any> | WritableComputedOptions<any>
363+
ComputedGetterWithVModel<any> | WritableComputedOptionsWithVModel<any>
364364
>
365365

366366
export interface MethodOptions {

0 commit comments

Comments
 (0)