在Typescript中正确导入本机节点模块

dav*_*oem 3 import native node.js typescript

我一直在使用node一段时间(对于我的后端)和带有离子的打字稿(用于前端).在Ionic上,我意识到我已经设法避免因为TypeScript而导致的许多陷阱和错误.因此我决定将纯JS中的所有后端转换为TypeScript.

我遇到的第一个障碍是如何正确导入本机节点模块http,os以及child_process其中之一.

在大多数模块上,你通常可以做类似的事情import { some_export } from 'that_module'.我还可以在@ types / repo中看到节点的类型定义.我已经尝试了,import { http, os } from 'node'但我收到了投诉

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

我的问题是如何导入本机节点模块?

dav*_*oem 6

我已经设法解决了这个问题,这要归功于这个简单的教程

据我所知,本机模块是在节点下未命名空间的独立模块.因此,您应该直接从他们导入.

这么简单:

import * as http from "http";
import * as os from "os";
import * as path from "path";
.
.
.
and so on
Run Code Online (Sandbox Code Playgroud)

  • 还有一件事 - 您需要告诉typescript编译器它们来自哪里 - 它在tsconfig.json中完成,使用以下行:"compilerOptions":{"types":["node"]} (4认同)