Я пытаюсь настроить проект angular2+express. Я понимаю причину проблемы, но не правильное решение. Вот соответствующие части моих зависимостей package.json:
"dependencies": {
"angular2": "2.0.0-beta.0",
"express": "^4.13.3",
"tsd": "^0.6.5",
"typescript": "^1.4.1",
<...lots of peer dependencies>
}
Node 5.2.0 установлен глобально. Когда я запускаю tsd install
, я получаю ./typings/node.d.ts
, для чего в комментариях утверждается, что это API версии 0.12.0. Но это противоречит angular2/typings/node/node.d.ts
(который также утверждает v0.12.0). Файлы .d.ts отличаются, например:
./node_modules/angular2/typings/node/node.d.ts
---> declare var global: NodeJS.Global;
./typings/node/node.d.ts
---> declare var global: any;
Результат - масса TS2300: Duplicate identifier
ошибок. Я могу взломать это, вручную удалив ./typings/node
и отредактировав ./typings/express/express.d.ts
, чтобы иметь:
/// <reference path="../../node_modules/angular2/typings/node/node.d.ts" />
Теперь все работает, но очевидно, что это просто «неправильно». Каков стандартный способ получить expres.d.ts, чтобы он хорошо работал с Angular 2?