一尘不染

使用TypeScript导入节点模块

node.js

我正在尝试使其工作,但似乎无法在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.

阅读 217

收藏
2020-07-07

共1个答案

一尘不染

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

2020-07-07