node.js - TypeScript, MongoDB y Problemas de Referencia
Tengo una aplicación NodeJS (desarrollada en Visual Studio) que utiliza TypeScript y MongoDB.
He escrito una pequeña biblioteca que envuelve el controlador de MongoDB en algunas clases de TypeScript y justo hoy empezó a comportarse mal.
Si incluyo esta línea en la parte superior de uno de mis archivos de biblioteca:
/// <reference path='./_scripts/typings/mongodb/mongodb.d.ts' />
se construye brevemente, antes de empezar a quejarse de "Identificador duplicado"s, y muchos de ellos, por ejemplo:
Error 6 Type name 'Transform' in extends clause does not reference constructor function for '"stream".Transform'.
Error 7 Type name 'events.EventEmitter' in extends clause does not reference constructor function for 'events.EventEmitter'.
Error 8 Duplicate identifier 'errno'.
Error 9 Duplicate identifier 'code'.
Error 10 Duplicate identifier 'path'.
Así que saco eso, y todo está brevemente bien, hasta que empiezo a ver problemas reportados alrededor de esta línea:
import mongodbNS = require('mongodb');
Si luego eliminara esa línea, vería errores con cosas como:
public Connect: () => Promise<mongodbNS.Db>;
Puedo salir adelante agregando y quitando cosas y aprovechando la breve ventana de compilabilidad que se abre, pero claramente este no es el camino.
¿Qué es?
Respuesta #1
y todos vienen de node.d.ts
Esto está ocurriendo porque tienes dos versiones de node.d.ts (es decir, archivos diferentes en el disco) en tu proyecto.