import * as mongodbModule from 'mongodb';
El código anterior es la forma estándar es6 de importar mongodb en nodejs, por lo que se supone que import mongodbModule from 'mongodb' arroja un error porque el módulo mongodb no tiene una exportación predeterminada; pero todavía funciona. Descubrí que el módulo mongodb es un archivo mecanografiado, de ahí mi pregunta.
Si puede o no escribir import mongodbModule from 'mongodb' sin recibir un error depende de su configuración en .tsconfig . Para habilitar esto, use la configuración --allowSyntheticDefaultImports . Como se explica en los documentos , no es realmente que TypeScript cree el paquete, es más que TypeScript asume que el paquete existe y le permite importarlo, mientras que Babel se encarga de la creación real.
Esta bandera no afecta el JavaScript emitido por TypeScript, solo para la verificación de tipos. Esta opción trae el comportamiento de TypeScript en línea con Babel, donde se emite código adicional para hacer que el uso de una exportación predeterminada de un módulo sea más ergonómico. ... Para mayor comodidad, los transpiladores como Babel crearán automáticamente un valor predeterminado si no se crea uno.