私は最近、PHP から Node.js に切り替え始めました。私は Typescript の大ファンなので、Typescript + Node.js を使用しています。スケールアップして実際にコードをビルドし始めたとき、サンプルのコンパイルは問題なく行われていました。しかし、私は問題に遭遇しました。私の .ts ファイルの 1 つで node.d.ts が (リファレンス doc コメントで) 参照されるたびに、Node.js の Typescript コンパイラは重複した定義について文句を言います。私の .ts ファイルの 2 つは、node.d.ts 定義がないことについて不平を言っていますが、main.js ファイルにはありません。(以下のファイル:)
search_request.ts
/// <reference path="definitions/mustache.d.ts" />
import url = module("url");
import mu = module("mu2");
export function handler(request, response) {
//code..
}
main.ts
/// <reference path="servers/search_request.ts" />
import search_request = module("./servers/search_request");
import express = module("express");
var app = express();
app.get("/search.html", search_request.handler);
app.listen(3000);
<reference path="node.d.ts" />
search_request.ts の先頭に追加すると、正常にコンパイルされます。削除すると、定義が見つからないという警告が表示されます。ただし、いずれかのファイルに含めると、main.ts をコンパイルすると、重複した識別子に関する何百もの警告が表示されます。
私は Typescript は初めてではありませんが、Node.js は初めてで、VS2012 ではなく tsc コンパイラを直接使用するのは初めてです。私は正確に何を間違っていますか?コンパイラは lib.d.ts のような node.d.ts を暗黙的にインクルードしますか? もしそうなら、search_request.ts をコンパイルするときにエラーが発生するのはなぜですか?