85c9d2cc89
* 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
48 lines
1.3 KiB
TypeScript
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);
|