将节点标准模块导入TypeScript



我认为这是一个非常简单的问题,但由于某种原因,我在网上找不到确切的答案:在TypeScript中导入标准NodeJS库的正确方法是什么?

我已经安装了@types/node,但当尝试从中导入时,我只会收到错误。例如,我正在尝试导入net。在JS中:

const net = require('net');

在TS中,我尝试过:

import * as net from 'net';  // Cannot find module 'net' or its corresponding type declarations.ts(2307)
import * as net from 'node/net';  // File '[...]@types/node/net.d.ts' is not a module.ts(2306)
import * as net from 'node:net';  // Cannot find module 'node:net' or its corresponding type declarations.ts(2307)

我的tsconfig.json:

{
"compilerOptions": {
"target": "ES6",
"module": "commonjs",
"baseUrl": "./",
"experimentalDecorators": true,
"strictPropertyInitialization": false,
"isolatedModules": false,
"strict": false,
"noImplicitAny": false,
"typeRoots": [
"../node_modules/@types"
],
"moduleResolution": "node",
"outDir": "dist"
},
"compileOnSave": true,
"exclude": [
"../node_modules"
],
"include": [
"./**/*.ts"
]
}

我敢打赌这完全是新手犯的错误,但我不知所措。如有任何帮助,我们将不胜感激!

您的tsconfig.json文件中有一个拼写错误,您的node_modules文件夹与tsconfig.jsn文件位于同一目录中,因此typeRoots密钥应该是"typeRoots": ["node_modules/@types"]或者你可以删除它,因为它被认为是可见的(从打字脚本文档中(:

默认情况下,所有可见的"@types"包都包含在编译中。任何封闭文件夹的node_modules/@类型中的包都被视为可见。

还修复排除密钥中的路径

相关内容

  • 没有找到相关文章