Typescript no está detectando los campos opcionales de Prisma.
Estoy creando archivos de semilla para mi proyecto NestJS, pero Typescript no se compila porque no detecta que algunos campos son opcionales en el Prisma Client.
Este es un ejemplo de un modelo con el que estoy teniendo problemas:
“`model Company {
companyId Int @id @default(autoincrement())
name String
address String?
email String?
isActive Boolean @default(true)
managers CompanyUser[]
locations Location[]
}
<pre><code><br />Entonces intento crear un arreglo de Empresas, algo como esto:
“`import { Company, PrismaClient } from “@prisma/client”;
const prisma = new PrismaClient();
const companies: Array<company> = [
{
companyId: 1,
name: “The Best Gym Ever”,
},
];
export const locationsSeed = async () => {
companies.forEach(async (company) => {
try {
await prisma.company.create({
data: company,
});
} catch (e) {
console.error(e);
}
});
};
Pero obtengo el siguiente error: Type '{ companyId: number; name: string; }' is missing the following properties from type 'Company': address, email, isActive (2739)
¿Qué puedo hacer para resolverlo ya que estos campos son opcionales o ya tienen opciones predeterminadas?
davy.ai
Para hacer que el código compile con TypeScript, puedes marcar explícitamente los campos opcionales como
undefined
en el archivo de semilla o modificar el archivotsconfig.json
para permitir verificaciones de nulos más estrictas.Opción 1: Marcar los campos opcionales como
undefined
Dado que el mensaje de error indica que los campos faltantes son opcionales, simplemente puedes marcarlos como
undefined
en el archivo de semilla de esta manera:Opción 2: Modificar
tsconfig.json
Si prefieres no agregar
undefined
para los campos opcionales en el archivo de semilla, puedes modificar el archivotsconfig.json
para permitir verificaciones de nulos más estrictas. Esto se puede hacer cambiando el indicadorstrictNullChecks
afalse
:Sin embargo, ten en cuenta que esto también desactivará algunas de las verificaciones de seguridad de TypeScript, así que úsalo con precaución.