gpt4 book ai didi

node.js - 如何在没有整个模块的情况下将类型导入 Typescript?

转载 作者:行者123 更新时间:2023-12-05 01:19:26 25 4
gpt4 key购买 nike

我正在用 Typescript 编写一个 Express 中间件。它将作为独立包发布到 npm。我希望能够使用 Express 类型定义我的函数,因为这让我可以使用类型安全来编写:

function playWithRequest( req: express.Request, res: express.Response, next: express.NextFunction ) {
req['key'] = 'stuff';
}

module.exports = playWithRequest;

但是,我不需要 require('express') 本身,我想避免 import 语句生成这样的 require() 调用。如何在不导入 express 本身的情况下告诉 Typescript 有关 express 类型的信息?

express typings 由 npm install @types/express 安装,因此在 node_modules/@types/express/index.d.ts 中徘徊。

最佳答案

默认情况下,TypeScript 不会将 import 转换为 require 语句,该语句在编译文件中没有使用仅 JS 的导出。

因此,当您只使用由@types/express 导出的类型时,不会生成 require 调用。

当你制作这样的模块时(只需要 express 打字)你可以安全地将 @types/express 放入你的依赖项(而不是 devDependencies )并保留 在你的 devDependencies 中表达 模块(用于编译目的)。

通过这样做,每当您将模块安装到您的应用程序时,它将被正确地安全类型化,但它不会提示 express 不存在。

关于node.js - 如何在没有整个模块的情况下将类型导入 Typescript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39846118/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com