R3T*_*ech 11 nodes typescript visual-studio-code
我正在使用Visual Studio Code进行NodeJS和Typescript开发.如果我正在编写此代码:
import * as http from 'http';
Run Code Online (Sandbox Code Playgroud)
编译说 error TS2307: Cannot find module 'http'.
如何处理这个错误?
格尔茨
Iso*_*ted 41
这对我有用:
npm install @types/node --save
Run Code Online (Sandbox Code Playgroud)
我意识到OP已经有一段时间了,但是这是一个更新的答案,以防有人遇到这个问题.
Yog*_*ity 13
这个错误发生在 Typescript 中,因为httpNode.js 和其他模块都是用 Javascript 编写的。Typescript 编译器没有有关用 Javascript 编写的库的类型和模块的信息。要添加此信息,您需要在 Typescript 项目中包含 Node.js 的类型声明。
在项目的根目录中执行以下终端命令:
npm install -D @types/node
Run Code Online (Sandbox Code Playgroud)
就是这样!现在错误应该消失了。
上面的命令将下载.d.tsNode.js 的类型声明文件 ( )。./node_modules/@types/node现在您可以在您的项目目录中看到这些文件,并且http.d.ts是其中之一。在此文件中,您将找到http模块和所有类型的声明,例如IncomingMessage、ServerResponse以及 HTTP 服务器中使用的其他类型。这就是 Typescript 编译器和 VS 代码如何使用类型声明信息来为您提供类型安全性。
@类型:
有一个名为DefiniteTyped 的社区维护存储库,其中包含许多新旧 Javascript 库(例如 Express、Sequelize、JQuery 等)的类型声明文件。当您在命令中指定@types包时,这意味着您正在从DefinitelyTyped存储库下载声明类型。
-D 标志:
devDependencies该命令还将自动在文件部分添加 Node.js 的类型package.json,如以下代码片段所示:
{
...
"devDependencies": {
...
"@types/node": "^14.0.27"
}
}
Run Code Online (Sandbox Code Playgroud)
该-D标志确保类型进入文件devDependencies的部分package.json而不是dependencies部分。因为这个包仅在开发中需要,而不是在生产中需要。不要使用其他答案中提到的标志,因为它会在部分中--save添加类型依赖项,并使用不必要的文件使服务器安装膨胀。dependenciespackage.json
就是这样!
我有同样的问题。类似于: https: //github.com/TypeStrong/ts-node/issues/216
安装打字后:
typings install dt~node --global --save
Run Code Online (Sandbox Code Playgroud)
然后将其添加到我的文件中:
///<reference path="../typings/globals/node/index.d.ts"/>
Run Code Online (Sandbox Code Playgroud)
突然间它就起作用了。
| 归档时间: |
|
| 查看次数: |
9964 次 |
| 最近记录: |