javascript - 我如何在 TypeScript 中引用来自另一个模块的已有类型?
假设我正在编写一个 Node.js 的 hello world 服务器。然后,作为 http.createServer 函数的回调,我有一个基本上长这样子的函数:
(req, res) => {
// ...
}
现在,如果我想在 TypeScript 中执行此操作,我希望告诉编译器 req 和 res 是来自 Node.js 的适当对象。如何将它们作为类型添加?基本上,这必须看起来像这样:
(req: X, res: Y): void => {
// ...
}
但是我需要为 X 和 Y 提供什么?我不想从头重新创建一切,而且我想肯定有某种机制可以引用现有类型,不是吗?
我想 req 和 res 的类型已经在某处定义了,例如在 @types/node 中。我如何在自己的代码中使用那些已定义的类型之一?
答案#1
在 http.d.ts 中,声明了 RequestListener 类型。
type RequestListener = (req: IncomingMessage, res: ServerResponse) => void;
你可以从 http 模块中导入这些类型。
import { IncomingMessage, ServerResponse } from 'http';
const requestListener = (req: IncomingMessage, res: ServerResponse): void => {
}
