如何扩展从@types/node 导出的模块声明?

How can I extend Module declarations exported from @types/node?

@types/node 不提供私有属性的类型(以 _ 为前缀)所以我想创建一个 .d.ts 文件来输入这些属性:

我最接近的是创建一个像这样的 module.d.ts

declare namespace NodeJS {
    interface Module {
        _compile(code: string, filename: string): string;
    }
}

declare module 'module' {   
    const _extensions: NodeJS.RequireExtensions;
    export { _extensions };

    export function _resolveFilename(filename: string, module: any): string;
}

然而,这与@types/node/module.d.ts冲突:

@types/node/module.d.ts:109:5 - error TS2309: An export assignment cannot be used in a module with other exported elements.

109     export = Module;
        ~~~~~~~~~~~~~~~~

export const _extensions: NodeJS.RequireExtensions怎么样?

这是完整的代码

// module.d.ts
import Module from "module";
declare global {
    namespace NodeJS {
        export interface Module {
            _compile(code: string, filename: string): string;
        }
    }
}
declare module 'module' {
    export const _extensions: NodeJS.RequireExtensions
    export function _resolveFilename(filename: string, module: any): string;
}

我也试过你的 _compile 声明,但它似乎在我最后不包含在 global 中是行不通的。

这是playground