Estoy trabajando con el siguiente bloque de código, lo construí hace un par de meses en JavaScript, pero la semana pasada decidí comenzar a aprender TypeScript. Parece que no puedo encontrar cómo definir correctamente los tipos de datos. ¿Alguien tiene algún consejo o recurso que pueda ayudarme a resolver este problema?
este es el mensaje de error exacto:
src/utils/pool.ts:5:5 - error TS2322: Escriba '"" | { rechazarNo autorizado: falso; } | undefined' no se puede asignar al tipo 'booleano | Opciones de conexión | indefinido'. El tipo '""' no se puede asignar al tipo 'booleano | Opciones de conexión | indefinido'.
5 ssl: proceso.env.PGSSLMODE && {rejectUnauthorized: false},
¡Muchas gracias!
import { Pool, PoolConfig } from 'pg'; export const pool = new Pool({ connectionString: process.env.DATABASE_URL, ssl: process.env.PGSSLMODE && { rejectUnauthorized: false }, }) pool.on('connect', ()=> console.log('Postgres connected'))Por lo que indica el error, parece que está usando una cadena donde un tipo 'booleano | Opciones de conexión | se espera undefined' Pruebe esta sintaxis en su lugar
import { Pool, PoolConfig } from 'pg'; export const pool = new Pool({ connectionString: process.env.DATABASE_URL, ...( process.env.PGSSLMODE ? {ssl: { rejectUnauthorized: false }} : {}), }) pool.on('connect', ()=> console.log('Postgres connected'))Si interpreta la salida del registro, indica claramente que hay un problema con el tipo que se espera y el tipo que ha declarado.
El tipo esperado es booleano o ConnectionOptions o undefined .
El tipo dado es, "" o {rejectUnauthorized: false; } o indefinido
Debe asignar una variable del tipo apropiado o actualizar el tipo de variable asignada actualmente.