模块“node:process”没有导出的成员“dlopen”

Module '"node:process"' has no exported member 'dlopen'

提问人:Mako 提问时间:11/17/2023 更新时间:11/17/2023 访问量:24

问:

我的 Typescript 项目 () 中有以下代码:[email protected], [email protected], @types/[email protected]index.ts

import { dlopen } from "node:process";

nodemon index.ts运行成功(我的本地插件已加载并执行)

tsc但是失败了error TS2339: Property 'dlopen' does not exist on type 'Process'

我看了一下,发现实际上不存在(https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/node/v18/process.d.ts),甚至没有出现在整个本地和全局中(文本搜索已完成)。dlopennode_modules/@types/node/process.d.tsnode_modules

我想必须以某种方式存在于 nodejs 运行时中,这就是工作的原因,但它的类型定义根本不存在。dlopennodemon index.ts

如何解决/解决此问题?

节点.js Typescript TSC

评论

1赞 T.J. Crowder 11/17/2023
听起来像是要报告的东西,也许可以提供公关。
1赞 axiac 11/17/2023
“我猜dlopen一定以某种方式存在于nodejs运行时中” - 软件不是猜测。当然存在,在 Node.js 文档中进行了描述。软件包(以及通常的软件包)不是权威的信息来源;它仅向 TypeScript 编译器提供提示,该编译器没有关于 Node.js 导出哪些类型或函数的任何其他信息源。很可能需要更新。dlopen()@types/node@types/*@types/node
0赞 Mako 11/17/2023
感谢 @T.J. Crowde 和 axiac 在我用 AKX stackoverflow.com/a/77501405/3168315 下面的建议修复它后,您的评论对我来说变得有意义,我认为你是对的。

答:

1赞 AKX 11/17/2023 #1

您可以尝试在项目中为该函数添加新的本地声明文件:types.d.tsdlopen

declare module 'process' {
  export function dlopen<T = any>(module: any, filename: string, flags?: any): T;
}