我正试图让它发挥作用,但我似乎无法在任何地方找到解决方案。尝试编译此单文件应用程序时:
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.
答案 0 :(得分:41)
TypeScript需要知道http
存在。
为节点安装类型definitinos:
npm install @types/node
遵循以下两个步骤
node.d.ts
文件:https://github.com/borisyankov/DefinitelyTyped/tree/master/node 在文件顶部添加:
/// <reference path="node.d.ts" />
PS:查看示例测试文件:https://github.com/borisyankov/DefinitelyTyped/blob/master/node/node-tests.ts
答案 1 :(得分:1)
我发现我的tsconfig.json文件中noResolve
设置为true
。这导致我对包含在TypeScript文件顶部的.d.ts文件的引用出错。
答案 2 :(得分:-4)
不应该像
那样/// <reference path="node.d.ts" />
import http = module('http')
我的意思是,您不应该使用module
代替require
吗?