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

377
Vistas
¿Cómo usar TypeScript con una biblioteca sin archivo de definición?

Así que estoy tratando de usar la biblioteca pino-clf en mi proyecto koa TS.

Sigo recibiendo esto cuando intento compilar:

 TSError: ⨯ Unable to compile TypeScript: src/modules/logger/index.ts:5:21 - error TS7016: Could not find a declaration file for module 'pino-clf'. '/dev/webservices/node_modules/pino-clf/index.js' implicitly has an 'any' type. Try `npm i --save-dev @types/pino-clf` if it exists or add a new declaration (.d.ts) file containing `declare module 'pino-clf';` 5 import pinoClf from 'pino-clf' ~~~~~~~~~~

pino-clf no tiene un archivo de definición y no hay @types/pino-clf disponible.

Intenté agregar un archivo pino-clf.d.ts en la carpeta del archivo en el que estoy importando la biblioteca con el módulo de declaración 'pino-clf' en él. Si bien eso hizo que los garabatos rojos en mi IDE desaparecieran, TS todavía se niega a compilar.

¿Cómo en el mundo usamos una lib que es simplemente JS con TS y sin agregar un ts-ignore?

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

0

Entonces, hay dos formas en que esto se puede lograr.

Solución uno: probablemente la más fácil

Simplemente puede usar require ex: const pinoClf = require("pinoClf") - la desventaja es que la referencia de punto o intellisense no está disponible, pero si conoce los métodos que desea usar, no es gran cosa.

Solución dos:

Cree su propio archivo typeDef en la raíz de su proyecto. Por ejemplo,

pino-clf.custom.d.ts

 declare module "pino-clf.custom" { const pinoClfJs = require("pinoClf"); export default class pinoClf { commonLog (type: string, dest: NodeJS.WriteStream, ancillary: any): void { pinoClfJs.commonLog(type, dest, ancillary); } } }

luego, en su archivo tsconfig.json , incluya el nuevo archivo typeDef:

 { ... // assuming src is already there "include": [ "src", "pino-clf.custom.d.ts" ] }

después de eso, simplemente puede importarlo import pinoClf from "pino-clf.custom";

Esta es una implementación muy básica y recomendamos investigar si desea algo más complejo. Por supuesto, hay más de una forma de resolver un problema, pero espero que esto haya ayudado. Salud.

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