Búsqueda de sitios web

mongodb - ¿Typescript agrupa automáticamente todas las exportaciones como predeterminadas?


import * as mongodbModule from 'mongodb';

El código anterior es la forma estándar en es6 de importar mongodb en nodejs, hacerlo así import mongodbModule from 'mongodb' se supone que debería lanzar un error porque el módulo mongodb no tiene exportación por defecto; pero aun así funciona. Descubrí que el módulo mongodb es un archivo de typescript, de ahí mi pregunta.

Respuesta #1

Si puedes o no escribir import mongodbModule from 'mongodb' sin obtener un error depende de tu configuración en .tsconfig. Para habilitar esto, usas la configuración --allowSyntheticDefaultImports. Como se explica en la documentación, no es realmente que TypeScript cree el paquete, es más bien que TypeScript asume que el paquete existe y te permite importarlo, mientras que Babel se encarga de la creación real del mismo.

Esta bandera no afecta el JavaScript emitido por TypeScript, solo es para la verificación de tipos. Esta opción hace que el comportamiento de TypeScript esté alineado con Babel, donde se emite código adicional para hacer que el uso de una exportación por defecto de un módulo sea más ergonómico. ... Para mayor comodidad, los transpiladores como Babel crearán automáticamente un valor por defecto si no se crea uno.