Есть ли способ передать универсальную функцию получения / установки в v-модель, чтобы мне не приходилось повторять себя для каждого свойства в пропуском, который я передаю в vue-class-component?
установить checkA, установить checkB, установить checkC,
получить checkA, получить checkB, получить checkC
За исключением названия свойства, они в основном идентичны
Код для контекста:
<template>
<div>
<v-checkbox
v-model="checkA"
label="A"/>
<v-checkbox
v-model="checkB"
label="B"/>
<v-checkbox
v-model="checkB"
label="C"/>
</div>
</template>
<script>
interface Options {
A: boolean;
B: boolean;
C: boolean;
}
export default class FooClass extends FooClassComponent {
@Prop({type: Options, required: true})
private options!: Options
get checkA() {
return this.options.checkA;
}
set checkA(checkA: boolean) {
this.setOptions(
Object.assign(new Options(), this.options, {
checkA,
}),
);
}
get checkB() {
return this.options.checkB;
}
set checkB(checkB: boolean) {
this.setOptions(
Object.assign(new Options(), this.options, {
checkB,
}),
);
}
get checkC() {
return this.options.checkC;
}
set checkC(checkC: boolean) {
this.setOptions(
Object.assign(new Options(), this.options, {
checkC,
}),
);
}
}
</script>
Есть ли дополнительное свойство или какой-либо более похожий на vue способ, которым я могу установить, чтобы он определял, как генерировать геттеры и сеттеры, подобные proxy ?