interface RequireResolve { (id: string, options?: { paths?: string[]; }): string; paths(request: string): string[] | null; } interface NodeRequire { (id: string): any; resolve: RequireResolve; cache: Dict; main: NodeModule | undefined; } interface NodeModule { exports: any; id: string; filename: string; loaded: boolean; parent: NodeModule | null | undefined; children: NodeModule[]; paths: string[]; package?: any; } declare var __filename: string; declare var __dirname: string; declare var __binding__: (id: string) => any; declare var require: NodeRequire; declare var module: NodeModule; declare var exports: any; interface ObjectConstructor { hashCode(obj: any): number; } interface Object { hashCode(): number; } interface Dict { [key: string]: T; } type TimeoutResult = any; interface Function { hashCode(): number; setTimeout(this: Function, time: number, ...argArray: any[]): TimeoutResult; } interface CallableFunction extends Function { setTimeout(this: (...args: A) => R, time: number, ...args: A): TimeoutResult; } interface ArrayConstructor { toArray(obj: any, index?: number, end?: number): any[]; } interface Array { hashCode(): number; deleteOf(value: T): T[]; indexReverse(index: number): T; indexAt(index: number): T; } interface StringConstructor { format(str: string, ...args: any[]): string; } interface String { hashCode(): number; } interface Number { hashCode(): number; /** * 转换为前后固定位数的字符串 * @param before {Number} 小数点前固定位数 * @param [after] {Number} 小数点后固定位数 */ toFixedBefore(before: number, after?: number): string; /** * 转换为前后固定位数的字符串,但不包含小数点后面为0 * @param after {Number} 小数点前固定位数 * @param split {Number?} 分割小数点前的字符 * @param symbol {String?} 分割小数点前的字符 */ toFixedVariable(this: number, after: number, split?: number, symbol?: string): string; } interface Boolean { hashCode(): number; } interface DateConstructor { /** * @field current timezone */ currentTimezone: number; /** * 解析字符串为时间 *

     * var i = '2008-02-13 01:12:13';
     * var date = Date.parseDate(i); //返回的新时间
     * 
* @func parseDate(str[,format[,timezone]]) * @param str {String} 要解析的字符串 * @param [format] {String} date format default yyyyMMddhhmmssfff * @param [timezone] {Number} 要解析的时间所在时区,默认为当前时区 * @return {Date} 返回新时间 */ parseDate(date_str: string, format?: string, timezone?: number): Date; /** * 格式化时间戳(单位:毫秒) *

        * var time_span = 10002100;
        * var format = 'dd hh:mm:ss';
        * var str = Date.formatTimeSpan(time_span, format); // str = '0 2:46:42'
        * var format = 'dd天hh时mm分ss秒';
        * var str = Date.formatTimeSpan(time_span, format); // str = '0天2时46分42秒'
        * format = 'hh时mm分ss秒';
        * str = Date.formatTimeSpan(time_span, format); // str = '2时46分42秒'
        * format = 'mm分ss秒';
        * str = Date.formatTimeSpan(time_span, format); // str = '166分42秒'
        * 
* @func formatTimeSpan(ts[,format]) * @param ts {Number} 要格式化的时间戳 * @param [format] {String} 要格式化的时间戳格式 * @return {String} 返回的格式化后的时间戳 */ formatTimeSpan(time_span: number, format?: string): string; } interface Date { hashCode(): number; /** * @func add 给当前Date时间追加毫秒,改变时间值 * @param ms {Number} 要添追加的毫秒值 * @return {Date} */ add(ms: number): Date; /** * 给定日期格式返回日期字符串 *

        * var date = new Date();
        * var format = 'yyyy-MM-dd hh:mm:ss.fff';
        * var dateStr = date.toString(format); // dateStr的值为 '2008-12-10 10:32:23'
        * format = 'yyyy-MM-dd hh:mm:ss';
        * dateStr = date.toString(format); // dateStr的值为 '2008-12-10 10:32:23'
        * format = 'yyyy/MM/dd';
        * dateStr = date.toString(format); // dateStr的值为 '2008/12/10'
        * format = 'yyyy-MM-dd hh';
        * dateStr = date.toString(format); // dateStr的值为 '2008-12-10 10'
        * 
* @func date_to_string(date[,foramt]) * @param date {Date} * @param [format] {String} 要转换的字符串格式 * @return {String} 返回格式化后的时间字符串 */ toString(format?: string, timezone?: number): string; } interface ErrorDescribe { name?: string; message?: string; error?: string; description?: string; errno?: number | string; child?: Error | Error[]; [prop: string]: any; } type ErrnoCode = [number, string, string?]; type ErrorNewArg = ErrnoCode | Error | string | ErrorDescribe; interface ErrorConstructor { 'new'(err: ErrorNewArg, ...child: ErrorNewArg[]): Error; toJSON(err: Error): any; setStackTraceJSON(enable: boolean): void; /** Create .stack property on a target object */ captureStackTrace(targetObject: Object, constructorOpt?: Function): void; } interface Error { errno?: number | string; description?: string; child?: Error[]; [prop: string]: any; extend: (desc: ErrorDescribe) => this; } declare function setTimeout
(cb: (...args: A) => void, timeout?: number, ...args: A): TimeoutResult; declare function setInterval(cb: (...args: A) => void, timeout?: number, ...args: A): TimeoutResult; declare function setImmediate(cb: (...args: A) => void, ...args: A): TimeoutResult; declare function clearTimeout(id?: TimeoutResult): void; declare function clearInterval(id?: TimeoutResult): void; declare function clearImmediate(id?: TimeoutResult): void;