UNPKG

10.6 kBTypeScriptView Raw
1/*! *****************************************************************************
2Copyright (c) Microsoft Corporation. All rights reserved.
3Licensed under the Apache License, Version 2.0 (the "License"); you may not use
4this file except in compliance with the License. You may obtain a copy of the
5License at http://www.apache.org/licenses/LICENSE-2.0
6
7THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
8KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
9WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
10MERCHANTABLITY OR NON-INFRINGEMENT.
11
12See the Apache Version 2.0 License for specific language governing permissions
13and limitations under the License.
14***************************************************************************** */
15
16
17
18/// <reference no-default-lib="true"/>
19
20
21/// <reference lib="es2015.symbol" />
22
23interface SymbolConstructor {
24 /**
25 * A method that determines if a constructor object recognizes an object as one of the
26 * constructor’s instances. Called by the semantics of the instanceof operator.
27 */
28 readonly hasInstance: symbol;
29
30 /**
31 * A Boolean value that if true indicates that an object should flatten to its array elements
32 * by Array.prototype.concat.
33 */
34 readonly isConcatSpreadable: symbol;
35
36 /**
37 * A regular expression method that matches the regular expression against a string. Called
38 * by the String.prototype.match method.
39 */
40 readonly match: symbol;
41
42 /**
43 * A regular expression method that replaces matched substrings of a string. Called by the
44 * String.prototype.replace method.
45 */
46 readonly replace: symbol;
47
48 /**
49 * A regular expression method that returns the index within a string that matches the
50 * regular expression. Called by the String.prototype.search method.
51 */
52 readonly search: symbol;
53
54 /**
55 * A function valued property that is the constructor function that is used to create
56 * derived objects.
57 */
58 readonly species: symbol;
59
60 /**
61 * A regular expression method that splits a string at the indices that match the regular
62 * expression. Called by the String.prototype.split method.
63 */
64 readonly split: symbol;
65
66 /**
67 * A method that converts an object to a corresponding primitive value.
68 * Called by the ToPrimitive abstract operation.
69 */
70 readonly toPrimitive: symbol;
71
72 /**
73 * A String value that is used in the creation of the default string description of an object.
74 * Called by the built-in method Object.prototype.toString.
75 */
76 readonly toStringTag: symbol;
77
78 /**
79 * An Object whose own property names are property names that are excluded from the 'with'
80 * environment bindings of the associated objects.
81 */
82 readonly unscopables: symbol;
83}
84
85interface Symbol {
86 readonly [Symbol.toStringTag]: string;
87}
88
89interface Array<T> {
90 /**
91 * Returns an object whose properties have the value 'true'
92 * when they will be absent when used in a 'with' statement.
93 */
94 [Symbol.unscopables](): {
95 copyWithin: boolean;
96 entries: boolean;
97 fill: boolean;
98 find: boolean;
99 findIndex: boolean;
100 keys: boolean;
101 values: boolean;
102 };
103}
104
105interface Date {
106 /**
107 * Converts a Date object to a string.
108 */
109 [Symbol.toPrimitive](hint: "default"): string;
110 /**
111 * Converts a Date object to a string.
112 */
113 [Symbol.toPrimitive](hint: "string"): string;
114 /**
115 * Converts a Date object to a number.
116 */
117 [Symbol.toPrimitive](hint: "number"): number;
118 /**
119 * Converts a Date object to a string or number.
120 *
121 * @param hint The strings "number", "string", or "default" to specify what primitive to return.
122 *
123 * @throws {TypeError} If 'hint' was given something other than "number", "string", or "default".
124 * @returns A number if 'hint' was "number", a string if 'hint' was "string" or "default".
125 */
126 [Symbol.toPrimitive](hint: string): string | number;
127}
128
129interface Map<K, V> {
130 readonly [Symbol.toStringTag]: string;
131}
132
133interface WeakMap<K extends object, V> {
134 readonly [Symbol.toStringTag]: string;
135}
136
137interface Set<T> {
138 readonly [Symbol.toStringTag]: string;
139}
140
141interface WeakSet<T extends object> {
142 readonly [Symbol.toStringTag]: string;
143}
144
145interface JSON {
146 readonly [Symbol.toStringTag]: string;
147}
148
149interface Function {
150 /**
151 * Determines whether the given value inherits from this function if this function was used
152 * as a constructor function.
153 *
154 * A constructor function can control which objects are recognized as its instances by
155 * 'instanceof' by overriding this method.
156 */
157 [Symbol.hasInstance](value: any): boolean;
158}
159
160interface GeneratorFunction {
161 readonly [Symbol.toStringTag]: string;
162}
163
164interface Math {
165 readonly [Symbol.toStringTag]: string;
166}
167
168interface Promise<T> {
169 readonly [Symbol.toStringTag]: string;
170}
171
172interface PromiseConstructor {
173 readonly [Symbol.species]: PromiseConstructor;
174}
175
176interface RegExp {
177 /**
178 * Matches a string with this regular expression, and returns an array containing the results of
179 * that search.
180 * @param string A string to search within.
181 */
182 [Symbol.match](string: string): RegExpMatchArray | null;
183
184 /**
185 * Replaces text in a string, using this regular expression.
186 * @param string A String object or string literal whose contents matching against
187 * this regular expression will be replaced
188 * @param replaceValue A String object or string literal containing the text to replace for every
189 * successful match of this regular expression.
190 */
191 [Symbol.replace](string: string, replaceValue: string): string;
192
193 /**
194 * Replaces text in a string, using this regular expression.
195 * @param string A String object or string literal whose contents matching against
196 * this regular expression will be replaced
197 * @param replacer A function that returns the replacement text.
198 */
199 [Symbol.replace](string: string, replacer: (substring: string, ...args: any[]) => string): string;
200
201 /**
202 * Finds the position beginning first substring match in a regular expression search
203 * using this regular expression.
204 *
205 * @param string The string to search within.
206 */
207 [Symbol.search](string: string): number;
208
209 /**
210 * Returns an array of substrings that were delimited by strings in the original input that
211 * match against this regular expression.
212 *
213 * If the regular expression contains capturing parentheses, then each time this
214 * regular expression matches, the results (including any undefined results) of the
215 * capturing parentheses are spliced.
216 *
217 * @param string string value to split
218 * @param limit if not undefined, the output array is truncated so that it contains no more
219 * than 'limit' elements.
220 */
221 [Symbol.split](string: string, limit?: number): string[];
222}
223
224interface RegExpConstructor {
225 readonly [Symbol.species]: RegExpConstructor;
226}
227
228interface String {
229 /**
230 * Matches a string or an object that supports being matched against, and returns an array
231 * containing the results of that search, or null if no matches are found.
232 * @param matcher An object that supports being matched against.
233 */
234 match(matcher: { [Symbol.match](string: string): RegExpMatchArray | null; }): RegExpMatchArray | null;
235
236 /**
237 * Replaces text in a string, using an object that supports replacement within a string.
238 * @param searchValue A object can search for and replace matches within a string.
239 * @param replaceValue A string containing the text to replace for every successful match of searchValue in this string.
240 */
241 replace(searchValue: { [Symbol.replace](string: string, replaceValue: string): string; }, replaceValue: string): string;
242
243 /**
244 * Replaces text in a string, using an object that supports replacement within a string.
245 * @param searchValue A object can search for and replace matches within a string.
246 * @param replacer A function that returns the replacement text.
247 */
248 replace(searchValue: { [Symbol.replace](string: string, replacer: (substring: string, ...args: any[]) => string): string; }, replacer: (substring: string, ...args: any[]) => string): string;
249
250 /**
251 * Finds the first substring match in a regular expression search.
252 * @param searcher An object which supports searching within a string.
253 */
254 search(searcher: { [Symbol.search](string: string): number; }): number;
255
256 /**
257 * Split a string into substrings using the specified separator and return them as an array.
258 * @param splitter An object that can split a string.
259 * @param limit A value used to limit the number of elements returned in the array.
260 */
261 split(splitter: { [Symbol.split](string: string, limit?: number): string[]; }, limit?: number): string[];
262}
263
264interface ArrayBuffer {
265 readonly [Symbol.toStringTag]: string;
266}
267
268interface DataView {
269 readonly [Symbol.toStringTag]: string;
270}
271
272interface Int8Array {
273 readonly [Symbol.toStringTag]: "Int8Array";
274}
275
276interface Uint8Array {
277 readonly [Symbol.toStringTag]: "Uint8Array";
278}
279
280interface Uint8ClampedArray {
281 readonly [Symbol.toStringTag]: "Uint8ClampedArray";
282}
283
284interface Int16Array {
285 readonly [Symbol.toStringTag]: "Int16Array";
286}
287
288interface Uint16Array {
289 readonly [Symbol.toStringTag]: "Uint16Array";
290}
291
292interface Int32Array {
293 readonly [Symbol.toStringTag]: "Int32Array";
294}
295
296interface Uint32Array {
297 readonly [Symbol.toStringTag]: "Uint32Array";
298}
299
300interface Float32Array {
301 readonly [Symbol.toStringTag]: "Float32Array";
302}
303
304interface Float64Array {
305 readonly [Symbol.toStringTag]: "Float64Array";
306}
307
308interface ArrayConstructor {
309 readonly [Symbol.species]: ArrayConstructor;
310}
311interface MapConstructor {
312 readonly [Symbol.species]: MapConstructor;
313}
314interface SetConstructor {
315 readonly [Symbol.species]: SetConstructor;
316}
317interface ArrayBufferConstructor {
318 readonly [Symbol.species]: ArrayBufferConstructor;
319}