Дублирование ошибок идентификатора с Angular2 и TSD

Я пытаюсь преобразовать проект из Angular 1 в Angular 2.

Это клиент-серверный проект с некоторым общим кодом (поэтому я держу его вместе). Я хочу использовать Angular 2 на стороне клиента, поэтому я следовал Краткому руководству по ng2. В настоящее время я пытаюсь построить его внутри своего проекта.

Я использую TSD для управления типами зависимостей. Некоторые из этих зависимостей, например socket.io, зависят от node.d.ts. Моя проблема в том, что angular2 уже выставляет node.d.ts и создает внешнее определение, поэтому, когда я хочу использовать TSD с angular2, я получаю конфликт между двумя определениями: typings\node\node.d.ts(961,9): error TS2300: Duplicate identifier 'path'.

Вот моя задача с глотком:

gulp.task('build.conflict', function(){

  var browserProject = tsc.createProject('browser.tsconfig.json', {
    typescript: typescript
  });

  var src = [
    'src/browser/**/*.ts',
    'typings/**/*.d.ts' // commenting out this line results in unknown modules
  ];

  var result = gulp.src(src)
    .pipe(tsc(browserProject));

  return result.js
    .pipe(gulp.dest('build/browser'));

});

Я также создал простой репозиторий, демонстрирующий мою проблему. Как я могу решить эту ошибку, сохраняя при этом свои TSD наборы. (Лучшим решением было бы запретить angular2 раскрывать свои внутренние node.d.ts)


person Demurgos    schedule 10.12.2015    source источник
comment
Итак, я только что обнаружил Typings и смог установить быстрое исправление. Как только он станет более стабильным, я опубликую ответ.   -  person Demurgos    schedule 11.12.2015
comment
Я так понимаю, он никогда не становился более стабильным?   -  person Mathias Lykkegaard Lorenzen    schedule 31.12.2015
comment
Все еще жду официального исправления. Есть несколько открытых проблем на Github Angular, и TS, похоже, в настоящее время работает с Typings, поэтому я надеюсь, что мы скоро получим надежное решение.   -  person Demurgos    schedule 01.01.2016
comment
Быстрое исправление было бы круто :)   -  person maxime1992    schedule 06.01.2016


Ответы (1)


Если вы начали использовать Typings, вы могли разрешить обнаружение *.d.ts только из зависимостей браузера в tsconfig.json. Вот отличный пример из демонстрации NgConf Джона Папы.

ОБНОВЛЕНИЕ: это устарело для типов> 1.0.0.

person Mathias Rodriguez    schedule 30.06.2016
comment
Спасибо, что напомнили мне об этом вопросе. На самом деле я стал участником типизации: на самом деле ваш ответ кажется устаревшим с новой структурой, начиная с версии 1.0.0 -> вам следует просто добавить весь каталог типизации - person Demurgos; 05.07.2016
comment
Круто, спасибо за наводку! Я добавил уведомление. - person Mathias Rodriguez; 06.07.2016