// This file is used for TypeScript compilation to ES5 only. // Since this file is not included in the compilation to ES6, it is an error // to this file from other sources. // Instead it is referenced by the rootFilePaths option to the compiler. // We also want the following typings to be available only when compiling to // ES5, because they are redundant with lib.es6.d.ts. /// // es6-promise.d.ts chose a different name for this interface than TS lib.es6.d.ts // Generic Type Alises are in TS 1.6 (https://github.com/Microsoft/TypeScript/pull/3397) // So we cannot write: // declare type PromiseLike = Thenable; // Until then we use a workaround: interface PromiseLike extends Thenable {} // Extend the ES5 standard library with some ES6 features we polyfill at runtime // by loading traceur-runtime.js // These are mostly copied from lib.es6.d.ts interface String { /** * Returns true if the sequence of elements of searchString converted to a String is the * same as the corresponding elements of this object (converted to a String) starting at * position. Otherwise returns false. */ startsWith(searchString: string, position?: number): boolean; } interface NumberConstructor { /** * Returns true if the value passed is an integer, false otherwise. * @param number A numeric value. */ isInteger(number: number): boolean; } interface Array { /** * Returns the this object after filling the section identified by start and end with value * @param value value to fill array section with * @param start index to start filling the array at. If start is negative, it is treated as * length+start where length is the length of the array. * @param end index to stop filling the array at. If end is negative, it is treated as * length+end. */ fill(value: T, start?: number, end?: number): T[]; } // Copied from lib.dom.d.ts and modified interface Map { clear(): void; delete (key: K): boolean; forEach(callbackfn: (value: V, index: K, map: Map) => void, thisArg?: any): void; keys(): List; values(): List; get(key: K): V; has(key: K): boolean; set(key: K, value: V): Map; size: number; } declare var Map: { new (): Map; new(): Map; // alexeagle: PATCHED new(m: Map): Map; new(l: List): Map; prototype: Map; }; interface Set { add(value: T): Set; clear(): void; delete (value: T): boolean; forEach(callbackfn: (value: T, index: T, set: Set) => void, thisArg?: any): void; has(value: T): boolean; size: number; } declare var Set: { new (): Set; new(): Set; // alexeagle PATCHED new(s: Set): Set; new(l: List): Set; prototype: Set; }; interface SymbolConstructor { /** * A method that returns the default iterator for an object.Called by the semantics of the * for-of statement. */ iterator: symbol; } declare var Symbol: SymbolConstructor;