在Typescript中正确导入本地的Node模块

9

我已经使用Node一段时间了(作为我的后端),同时在Ionic中使用TypeScript(作为前端)。在Ionic上,我意识到由于TypeScript的存在,我已经成功避免了许多陷阱和错误。因此,我决定将所有原本是纯JS的后端转换成TypeScript。

我遇到的第一个障碍是如何正确地导入原生的Node模块,例如httposchild_process等。

对于大多数模块,通常可以采用import { some_export } from 'that_module'这样的方法。我还可以在@types/存储库中看到有关Node的类型定义。我尝试过import { http, os } from 'node',但是我会收到以下投诉:

/node_modules/@types/node/index.d.ts不是模块

因此,我的问题是如何导入原生的Node模块?

1个回答

13

多亏了这篇简单教程,我已经成功解决了这个问题

据我所知,原生模块是独立的模块,它们没有命名空间在node下。因此,你应该直接从它们中导入。

只需要这样做:

import * as http from "http";
import * as os from "os";
import * as path from "path";
.
.
.
and so on

6
还有一件事 - 你需要告诉 TypeScript 编译器这些内容来自哪里,这可以在 tsconfig.json 中完成,添加以下代码行: "compilerOptions": { "types": [ "node" ] } - Kamil Solecki

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接