【发布时间】:2021-12-26 12:39:07
【问题描述】:
我安装了 Visual Studio Code,并想使用 TypeScript 编写 NodeJS。 所以我创建了非常基本的应用程序,但我收到错误消息:
Cannot find name 'require'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.ts(2580)
执行提到的npm 命令并不能解决问题。我已经丢失了我关注、阅读的链接墙,或者不适用于我、没有解决问题、已经过时等等:
这个最接近:
https://www.section.io/engineering-education/how-to-use-typescript-with-nodejs/
我运行了这些命令:npm i --save-dev @types/nodenpm install -g typescriptnpm install -D typescript
只是为了测试我将配置文件tsconfig.json替换为:
{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"outDir": "./dist",
"rootDir": "./src",
"strict": true,
"moduleResolution": "node",
"esModuleInterop": true,
},
"exclude":[
"./node_modules"
]
}
我将我的.ts 文件移动到项目根文件夹的src 文件夹,并创建了dest 文件夹。我重新启动了应用程序,没有。我寻找可能有帮助的扩展,没有。
我知道我不能只在 TypeScript 中“要求”,因为它想检查函数是否真的存在,这与 JavaScript 不同。但是我如何实际将 TypeScript 代码编译为 JavaScript 然后运行呢?导致问题的行是文件主题中的三行。
const http = require('http');
const crypto = require('crypto');
const colors = require('colors');
编辑:declare function require(name : string);
修复了问题。但是 require('crypto') 抛出:lib.dom.d.ts(18699, 13): 'crypto' was also declared here.
【问题讨论】:
-
查看this答案
-
我已经试过了,帖子里提到过。它不能解决任何问题。
-
你试过在你的ts源码中使用
import关键字吗? -
@DadiBit
const crypto = import('crypto')和import crypto from "crypto"都抛出Cannot find module 'crypto' or its corresponding type declarations.ts(2307)尽管npm install -g crypto和重新启动。 -
将变量
crypto重命名为xcrypto会消除该消息,但 Visual Code 找不到createHash的定义(实际上就像没有理解代码的常规 JavaScript 一样)。跨度>
标签: node.js typescript visual-studio-code