TypeScript/tests/baselines/reference/stackDepthLimitCastingType.js
Wesley Wigham 85c9d2cc89
Use faster, stricter prop type comparison when merging props in union prop creation (#43696)
* Use faster, stricter prop type comparison when merging props in union prop creation

* Be better at determining this usage in methods, accept baselines

* Small style change
2021-04-19 15:25:12 -07:00

48 lines
1.3 KiB
TypeScript

//// [tests/cases/compiler/stackDepthLimitCastingType.ts] ////
//// [index.d.ts]
declare global {
interface JQueryXHR { }
class Model<T = any, E = {}> {
initialize(attributes?: T, options?: CombinedModelConstructorOptions<E, this>): void;
fetch(options?: any): JQueryXHR;
}
interface ModelConstructorOptions<TModel extends Model = Model> {
collection?: Collection<TModel>;
}
class Collection<TModel extends Model = Model> {
without(...values: TModel[]): TModel[];
}
type CombinedModelConstructorOptions<E, M extends Model<any, E> = Model> = ModelConstructorOptions<M> & E;
}
export {
Model
};
export as namespace Backbone;
//// [index.d.ts]
import * as Backbone from "backbone";
declare module "backbone" {
interface ModelWithCache extends Model {
fetch(options?: any): JQueryXHR;
}
}
export {};
export as namespace BackboneFetchCache;
//// [index.ts]
import * as Backbone from "backbone";
import * as BackboneFetchCache from "backbone-fetch-cache";
const hoge = new Backbone.Model() as Backbone.ModelWithCache;
hoge.fetch(null as any);
//// [index.js]
"use strict";
exports.__esModule = true;
var Backbone = require("backbone");
var hoge = new Backbone.Model();
hoge.fetch(null);