Búsqueda de sitios web

vue.js - TS2322: El tipo '(state: State, exRep: number, exName: string) => void' no es asignable al tipo 'Mutation'. - Vuex/Typescript


Actualmente estoy trabajando con vuex y typescript, pero tengo este error en mi código y no tengo idea de cómo solucionarlo. El error: TS2322: Type '(state: State, exRep: number, exName: string) => void' is not assignable to type 'Mutation '

Mi código :

import { createStore } from "vuex";
import {State} from "./Types";

const store = createStore<State>({
    state() {
        return {

            exercices: []

        }
    },
    mutations: {
        addEx(state: State, exRep: number, exName: string) {
            const exId = checkid()
            state.exercices.push({ "rep": exRep, "name": exName, "id": exId })
        },
        removeEx(state: State, exoId: Number) {
            console.log(exoId)
            state.exercices = state.exercices.filter(obj => obj.id !== exoId)
        }
    }
})
export default store

El error está en la mutación "addEx"

Respuesta #1

Las funciones de mutación solo tienen 2 parámetros, sería poco práctico que fueran variádicas. El segundo parámetro es la carga opcional, en caso de múltiples parámetros debería ser un objeto:

addEx(state: State, { exRep, exName }: { exRep: number, exName: string }) {
  ...