如何扩展从@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
中是行不通的。
@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
中是行不通的。