Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

236
Vistas
Property is missing in type prisma/client/index, when adding a custom type to Prisma schema

My custom type "Observations" doesn't seem to be generating correctly as I am getting this error message

Property 'observations' is missing in type 'import("/Users/thomasandrew/Documents/webApps/social-innovate/boilerplate/packages/api/node_modules/.prisma/client/index").ActionPlan' but required in type 'import("/Users/thomasandrew/Documents/webApps/social-innovate/boilerplate/packages/api/src/modules/actionPlan/actionPlan.model").ActionPlan'.ts(2741) actionPlan.model.ts(25, 5): 'observations' is declared here.

This is my Prisma schema file (removed some extraneous fields)

model Observation {
  id                      String @id @default(dbgenerated("gen_random_uuid()"))
  actionPlan              ActionPlan  @relation(fields: [actionPlanId], references: [id])
  actionPlanId            String
  meetingDate             DateTime?
  place                   String?
}

model ActionPlan {
    id          String  @id @default(dbgenerated("gen_random_uuid()")) @unique
    testName    String
    observations Observation[]
}

type-graphql model

@ObjectType()
export class ActionPlan extends BaseModel implements Prisma.ActionPlan {
    @Field()
    testName: string

    @Field()
    department: string

    @Field()
    code: string

    @Field()
    outcome: string

    @Field()
    hypothesis: string

    @Field(type => [Observation])
    observations: Observation[]
}

However even when I run prisma generate successfully, it doesn't add the 'observations' to the Action Plan. Am I missing something? Any help would be great. I also attached screenshot of generated types at node_modules/.prisma/client/index.d.ts

enter image description here.

enter image description here

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Since you have a relation between those 2, your code should provide an include argument, so that your @Resolver & @Query can populate that entity in the response.
Also, I don't know if it is inside your ActionPlanService the prisma connection (probably yes, since you get this error).
So, for example, your first query should point to the this ActionPlanService function:

async getActionPlan(id: string): Promise<ActionPlan> {
   return await this.prismaService.actionPlan.findFirst({
      where: {
         id,
      },
      include: {
         observations: true,
      }
    });

or something similar, since I don't know how you connect with prisma in that service

about 4 years ago · Juan Pablo Isaza Denunciar

0

Prisma doesn't include relationships in generated types because not all queries include them. Prisma queries do return relationships according options used, but in the generated code this is done through complex TypeScript.

But always you can define types with relationships included manually or using a combination of ReturnType<T> and Awaited<T> utilities.

Example defining manually:

type ActionPlanWithObservations = ActionPlan & {
  observations: Observation[]
}

Example using Awaited and ReturnType:

type ActionPlanWithObservations =
        Awaited<ReturnType<ActionPlanService["getActionPlan"]>>

Where ActionPlanService is:

class ActionPlanService {      
  getActionPlan(id: string) {
    return prisma.actionPlan.findFirst({
      where: {
         id,
      },
      include: {
         observations: true,
      }
    })
  }
}

Note: Awaited<T> utility is available since TypeScript 4.5

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda