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 #4740
This commit is contained in:
Gitgiddy
2015-06-26 09:24:50 -04:00
parent e1182d56cc
commit 575d43c508

17
node/node.d.ts vendored
View File

@@ -27,23 +27,30 @@ declare function clearInterval(intervalId: NodeJS.Timer): void;
declare function setImmediate(callback: (...args: any[]) => void, ...args: any[]): any;
declare function clearImmediate(immediateId: any): void;
declare var require: {
interface NodeRequireFunction {
(id: string): any;
}
interface NodeRequire extends NodeRequireFunction {
resolve(id:string): string;
cache: any;
extensions: any;
main: any;
};
}
declare var module: {
declare var require: NodeRequire;
interface NodeModule {
exports: any;
require(id: string): any;
require: NodeRequireFunction;
id: string;
filename: string;
loaded: boolean;
parent: any;
children: any[];
};
}
declare var module: NodeModule;
// Same as module.exports
declare var exports: any;