Skip to content

Commit 575d43c

Browse files
committed
Extendable interfaces for require, module.require
Node's `require` should implement a new interface `NodeRequire` (rather than direct signature) for specialized extension by other libraries DefinitelyTyped#4740
1 parent e1182d5 commit 575d43c

File tree

1 file changed

+12
-5
lines changed

1 file changed

+12
-5
lines changed

node/node.d.ts

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,23 +27,30 @@ declare function clearInterval(intervalId: NodeJS.Timer): void;
2727
declare function setImmediate(callback: (...args: any[]) => void, ...args: any[]): any;
2828
declare function clearImmediate(immediateId: any): void;
2929

30-
declare var require: {
30+
interface NodeRequireFunction {
3131
(id: string): any;
32+
}
33+
34+
interface NodeRequire extends NodeRequireFunction {
3235
resolve(id:string): string;
3336
cache: any;
3437
extensions: any;
3538
main: any;
36-
};
39+
}
3740

38-
declare var module: {
41+
declare var require: NodeRequire;
42+
43+
interface NodeModule {
3944
exports: any;
40-
require(id: string): any;
45+
require: NodeRequireFunction;
4146
id: string;
4247
filename: string;
4348
loaded: boolean;
4449
parent: any;
4550
children: any[];
46-
};
51+
}
52+
53+
declare var module: NodeModule;
4754

4855
// Same as module.exports
4956
declare var exports: any;

0 commit comments

Comments
 (0)