36

これを機能させようとしていますが、SOのどこにも解決策が見つからないようです。この単一ファイル アプリをコンパイルしようとすると、次のようになります。

import http = require('http')
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');

コマンド「tsc app.ts --module 'commonjs'」を使用すると、次のエラーが発生します ( --module フラグを使用しないと、外部モジュールをコンパイルするために必要であることを示す追加のエラーが表示されます)。

error TS2071: Unable to resolve external module '"http"'.
error TS2072: Module cannot be aliased to a non-module type.
4

3 に答える 3

45

TypeScript はそれが存在することを知る必要がhttpあります。

更新しました

ノードの型定義をインストールします。

npm install @types/node

古い答え

次の 2 つの手順に従います

PS: サンプル テスト ファイルを参照してください: https://github.com/borisyankov/DefinitelyTyped/blob/master/node/node-tests.ts

于 2013-08-22T12:15:49.003 に答える
2

tsconfig.json ファイルにnoResolve設定したことがわかりました。trueこれにより、TypeScript ファイルの先頭に含めた .d.ts ファイルへの参照でエラーが発生していました。

于 2016-07-17T11:19:47.487 に答える
-3

次のようなものではないでしょうか

/// <reference path="node.d.ts" />
import http = module('http')

moduleつまり、代わりにrequire?を使用すべきではありません。

于 2014-01-15T10:55:49.437 に答える