Búsqueda de sitios web

typescript - ¿Cómo exportar dependencias en DENO?


Me gustaría saber cómo puedo exportar módulos de npm como express. Por ejemplo, tengo la siguiente importación, funciona bien y el linter no muestra ningún error:

import express, { Request, Response } from 'npm:express';

sin embargo, al llevarlo a mi deps.ts obtengo el siguiente error:

export express, { Request, Response } from 'npm:express';

Error :

';' expected.

intenta separarlo pero da otro error:

export express from 'npm:express'; export { Request, Response } from 'npm:express'; 

Error :

Unexpected keyword or identifier

Entonces prueba lo siguiente:

import express from 'npm:express'; export { Request, Response } from 'npm:express'; export { express };

pero recibo el siguiente error:

Uncaught SyntaxError: The requested module 'npm:express' does not provide an export named 'Request' export { Request, Response } from 'npm:express';

y no sé cómo solucionarlo, espero que puedas ayudarme, no quiero usar una importación por defecto en mi archivo app.ts, espero que puedas ayudarme

Respuesta #1

La exportación predeterminada del paquete express es una función, pero Request y Response son interfaces de tipo.

Al exportar tipos, debes usar el modificador type, así:

./deps.ts:

export { default as express, type Request, type Response } from "npm:express";

Luego, esas dependencias exportadas pueden ser importadas en otro módulo así:

./mod.ts:

import { express, type Request, type Response } from "./deps.ts";

console.log("typeof express:", typeof express); // typeof express: function

Luego puedes ejecutar el módulo mod.ts en la terminal y ver esta salida:

% deno --version
deno 1.29.4 (release, x86_64-apple-darwin)
v8 10.9.194.5
typescript 4.9.4

% deno run --allow-env --allow-read mod.ts
typeof express: function