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



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

  • 模块#_compile
  • 模块_扩展
  • 模块_resolveFilename

我最接近的是创建一个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中包装,它似乎就不起作用。

这是操场

相关内容

  • 没有找到相关文章

最新更新