我认为这是一个非常简单的问题,但由于某种原因,我在网上找不到确切的答案:在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/@类型中的包都被视为可见。
还修复排除密钥中的路径