es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La propiedad ‘…’ no existe en el tipo ‘Api redux-tookit

import { createApi, fetchBaseQuery } from "@reduxjs/toolkit/query/react"
import { JobForm, Job } from "../types/JobsTypes"

export const createJobApis = createApi({
    reducerPath: "createJobApi",
    baseQuery: fetchBaseQuery({
        baseUrl: "http://localhost:8000/api/v1/jobs",
        prepareHeaders: (headers) => {
            headers.set("Content-Type", "application/json")
            headers.set("accept", "application/json")
            return headers
        },
    }),
    endpoints: (build) => ({
        getAll: build.query<job, void="">({ query: () => "/" }),
        created: build.mutation({
            query: (body: JobForm) => ({
                url: "/",
                method: "post",
                body,
            }),
        }),
    }),
})

export const { useCreatedMutation, useGetAllQuery } = createJobApis
console.log(useCreatedMutation)

Typescript indica que la propiedad no existe en tanto useCreatedMutation como useGetAllQuery al pasar el cursor por encima y tienen un tipo de any, pero el console log retorna una función y lo he probado y funciona sin errores en la consola, solo no hay soporte de tipo y hay una subrayado rojo en ambas exportaciones.
“`</job,>

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Es posible que el compilador de TypeScript no pueda inferir los tipos correctos para las exportaciones useCreatedMutation y useGetAllQuery de la API createJobApis creada usando createApi de @reduxjs/toolkit/query/react. Esto puede deberse a un error o a una definición de tipo incompleta en la biblioteca.

    Sin embargo, parece que las exportaciones realmente funcionan y devuelven funciones válidas cuando se registran en la consola, a pesar de la falta de anotaciones de tipo. Siempre y cuando las funciones funcionen como se espera y no causen errores en tiempo de ejecución, debería ser seguro usarlas tal como están.

    Para solucionar el problema de la falta de soporte de tipo, podrías intentar anotar explícitamente los tipos de las exportaciones en tu módulo o importar los tipos desde el paquete relevante. Por ejemplo:

    import { createApi, fetchBaseQuery, MutationResponse } from "@reduxjs/toolkit/query/react";
    import { JobForm, Job } from "../types/JobsTypes";
    
    type CreateJobApis = {
      useCreatedMutation: (body: JobForm) => Promise<mutationresponse>,
      useGetAllQuery: () => Promise<job[]>
    }
    
    export const createJobApis = createApi({
      // ...
    });
    
    export const { useCreatedMutation, useGetAllQuery }: CreateJobApis = createJobApis;
    

    En el ejemplo anterior, definimos un tipo CreateJobApis que enumera explícitamente los tipos de las exportaciones useCreatedMutation y useGetAllQuery, basados en los valores de retorno esperados de la función createApi. Luego, anotamos las exportaciones con este tipo para proporcionar soporte de tipo en nuestro módulo.

    Alternativamente, podrías intentar actualizar a una versión más reciente de @reduxjs/toolkit, ya que la biblioteca puede haber solucionado cualquier problema con las anotaciones de tipo en versiones más recientes.</job[]>

Comments are closed.