当前位置: 首页 > 面试题库 >

使用TypeScript导入节点模块

伯晨
2023-03-14
问题内容

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

问题答案:

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



 类似资料:
  • 本文向大家介绍TypeScript 从npm导入模块,包括了TypeScript 从npm导入模块的使用技巧和注意事项,需要的朋友参考一下 示例 如果模块具有类型定义文件(d.ts),则可以使用import语句。 如果您没有模块的定义文件,TypeScript将在编译时抛出错误,因为它找不到您要导入的模块。 在这种情况下,可以使用正常的运行时require功能导入模块。但是,这将其返回为any类型

  • 我得到了这个错误时,试图从另一个javascript文件导入。这是我第一次尝试这样的东西。主文件是,模块文件是。 main.js: 摩登派青年js: 我怎样才能解决这个问题?谢谢

  • 模块“Transformer”解析为非模块实体,不能使用此构造导入。 如何导入类?其实我只是想利用那堂课。我不希望指令在我的代码中产生附带效应。我只想用它:'(

  • 长话短说,我试图在CommonJS模块中使用一个只有ES6模块入口点的npm包,即(GitHub),因为我的整个50多个模块的应用程序都是在CommonJS中构建的。根据节点文档,这样做的标准方法是使用函数。我使用以下代码尝试了这种方法: 但是,这会导致包出错,而不一定是上面的导入函数: 有没有一种方法可以绕过这个问题,这样我就可以在CommonJS模块中使用这个包了?

  • 我使用的是TypeScript(1.6),节点位于--harmony标志下,因此我希望将es6模块语法转换到commonJS。 据我所知,我不能用Typescript1.6来做这件事。如果我将目标设置为es6,将模块设置为commonjs,我会得到一个TypeScript错误- 当目标为“ES6”或更高版本时,无法将模块编译为“commonjs”、“amd”、“system”或“umd”。 为什么

  • 问题内容: 我试图在节点中陷入进口的泥潭,并试图使用此示例中提供的语法: [备忘单链接](https://hackernoon.com/import-export-default-require-commandjs- javascript-nodejs-es6-vs-cheatsheet-different-tutorial-example-5a321738b50f) 我正在浏览支持表,但无法找到