BonBonSlick
@BonBonSlick
Vanilla Web Architect

Синхронизация return type Vuex module и action?

export default class LayoutDefault extends Vue {
    @user.Action
    public emailTest!: (test: string) => void
// or?
    public emailTest!: (test: string) => Promise<object>


    public mounted(): void {
        console.log(this.emailTest('test2')); // Promise  в любом случае


для такого метода
@MutationAction
    public async emailTest(test: string): Promise<object> {
        return {email: test};
    }


или раздельных

@Mutation
    public setEmail(email: string): void {
        this.email = email
    }

    @Action
    public updateName(email: string): void {
        this.context.commit('setEmail', email)
    }


В обеих случаях что action async или нет, а return type екшена так же не виляет, console.log всегда выводит Promise.

Вот и возникли вопросы, какой return type тогда указывать и где, как их синхонизировать?
Ведь по сути там всегда Promise для методов или какой нибудь еще closure. А так же надо указывать один и тот же тип в 2-х местах, return type метода и в компоненте при декларации метода
@user.Action
    public emailTest!: (test: string) => Promise<object>
  • Вопрос задан
  • 18 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы