@tscc/tscc
Version:
A typescript transpiler and bundler that wires up tsickle and closure compiler seamlessly
129 lines (102 loc) • 2.97 kB
JavaScript
/**
* @license
* Copyright Google Inc. All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
/**
* @fileoverview Extern definitions for types missing in the Closure externs,
* but used in TypeScript platform `.d.ts`.
* We suppress checkTypes to handle the scenario where a user doesn't use the
* Closure externs (e.g. in a service worker).
* @externs
* @suppress {checkTypes}
*/
/** @typedef {!IArrayLike} */
var ArrayLike;
/** @typedef {!IteratorIterable} */
var IterableIterator;
/** @typedef {!IIterableResult} */
var IteratorYieldResult;
/** @typedef {!IIterableResult} */
var IteratorReturnResult;
/** @typedef {!HTMLCollection} */
var HTMLCollectionOf;
/** @typedef {!HTMLTableCellElement} */
var HTMLTableDataCellElement;
/**
* Does not have an equivalent in Closure's externs.
* @typedef {!HTMLTableCellElement}
*/
var HTMLTableHeaderCellElement;
/**
* Closure's NodeList is parameterized itself, there is no NodeListOf.
* @constructor
* @template T
* @extends {NodeList<T>}
*/
var NodeListOf;
/**
* Closure models this as a plain Array.
* @typedef {!IArrayLike<string>|null}
*/
var RegExpExecArray;
/** @typedef {!Map} */
var ReadonlyMap;
/** @typedef {!Set} */
var ReadonlySet;
/**
* @record
* @template T
* @extends {IThenable<T>}
*/
function PromiseLike() {};
/** @typedef {function(new:Promise)} */
var PromiseConstructor;
/** @typedef {function(new:Promise, function(function(*=), function(*=)))} */
var PromiseConstructorLike;
/** @typedef {?} */
var SymbolConstructor;
/** @typedef {!Object} */
var GlobalFetch;
/**
* @interface
* @extends {WorkerGlobalScope}
* @extends {Window}
*/
var WindowOrWorkerGlobalScope;
/** @record */
function CanvasDrawImage() {}
/** @constructor */
function CryptoKey() {};
/** @constructor */
function CryptoKeyPair() {};
/** @typedef {!{handleEvent: function(Event):void}} */
var EventListenerObject;
/** @typedef {!ITemplateArray} */
var TemplateStringsArray;
/** @typedef {!RegExpResult} */
var RegExpMatchArray;
/** @record */
function ImportMeta() {};
// Representations for TS' EventMap objects.
// These are types that contain a mapping from event names to event object
// types. User code can augment them, which produces externs.js files that then
// reference the EventMap types - even though they are not defined in Closure.
// Defining them here works around the problem.
// Modification made for TSCC: classes were replaced with functions for compatibility with ES5
/** @interface */
function HTMLElementEventMap() {}
/** @interface */
function ElementEventMap() {}
/** @interface */
function DocumentEventMap() {}
/** @interface */
function WindowEventMap() {}
/** @interface */
function GlobalEventHandlersEventMap() {}
/** @interface */
function DocumentAndElementEventHandlersEventMap() {}
/** @interface */
function EventSourceEventMap() {}