2014-09-19 3 views
3

У меня есть приложение NodeJS (встроенное в Visual Studio), которое использует TypeScript и MongoDB.TypeScript, MongoDB и Reference Issues

Я написал небольшую библиотеку, которая обертывает драйвер MongoDB в некоторых классах TypeScript, и только сегодня он начал действовать.

Если я включить эту строку в верхней части одной из моих библиотечных файлов:

/// <reference path='./_scripts/typings/mongodb/mongodb.d.ts' /> 

это построить кратко до начала до пожаловаться «Дубликат идентификатор» с, и многие из них, например, :

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'. 

Итак, я беру, что из, и все кратко нормально, пока я не начать видеть проблемы, сообщенные вокруг этой линии:

import mongodbNS = require('mongodb'); 

Если бы я затем удалить эту строку, я хотел бы видеть ошибки с вещами, как:

public Connect:() => Promise<mongodbNS.Db>; 

я могу выкарабкаться, добавив удаление вещи и воспользовавшись кратким окно compilability, который открывается но это явно не так.

Что такое?

+0

пример сообщения об ошибке «duplicate identifier» был бы отличным – basarat

+0

Я использую Node Tools для VS 2013, и все они происходят из node.d.ts. Я добавил несколько примеров выше. – Michael

ответ

5

и все они происходят из node.d.ts

Это происходит потому, что у вас есть две версии node.d.ts (т.е. различных файлов на диске) в вашем проекте.

+0

Это пришло мне в голову, поэтому я сделал обыск, и, конечно, их было два. Но они оба являются частью других файлов d.ts: socket.io.d.ts и mongodb.d.ts, которые оба используются в решении. Итак, от чего я избавляюсь? – Michael

+0

@ Майкл старше. Они должны быть совместимыми. – basarat

+0

И затем исправить ссылку в той, которая ссылалась на более старую версию. – basarat