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 identifierEntonces 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
