Declaration file emit for private method overloads (#1018)

This commit is contained in:
Sheetal Nandi 2014-11-03 07:26:21 -08:00
parent 3c2f556306
commit 3ce841466d
3 changed files with 154 additions and 0 deletions

View file

@ -0,0 +1,54 @@
//// [declFilePrivateMethodOverloads.ts]
interface IContext {
someMethod();
}
class c1 {
private _forEachBindingContext(bindingContext: IContext, fn: (bindingContext: IContext) => void);
private _forEachBindingContext(bindingContextArray: Array<IContext>, fn: (bindingContext: IContext) => void);
private _forEachBindingContext(context, fn: (bindingContext: IContext) => void): void {
// Function here
}
private overloadWithArityDifference(bindingContext: IContext);
private overloadWithArityDifference(bindingContextArray: Array<IContext>, fn: (bindingContext: IContext) => void);
private overloadWithArityDifference(context): void {
// Function here
}
}
declare class c2 {
private overload1(context, fn);
private overload2(context);
private overload2(context, fn);
}
//// [declFilePrivateMethodOverloads.js]
var c1 = (function () {
function c1() {
}
c1.prototype._forEachBindingContext = function (context, fn) {
// Function here
};
c1.prototype.overloadWithArityDifference = function (context) {
// Function here
};
return c1;
})();
//// [declFilePrivateMethodOverloads.d.ts]
interface IContext {
someMethod(): any;
}
declare class c1 {
private _forEachBindingContext(bindingContext, fn);
private _forEachBindingContext(bindingContextArray, fn);
private overloadWithArityDifference(bindingContext);
private overloadWithArityDifference(bindingContextArray, fn);
}
declare class c2 {
private overload1(context, fn);
private overload2(context);
private overload2(context, fn);
}

View file

@ -0,0 +1,76 @@
=== tests/cases/compiler/declFilePrivateMethodOverloads.ts ===
interface IContext {
>IContext : IContext
someMethod();
>someMethod : () => any
}
class c1 {
>c1 : c1
private _forEachBindingContext(bindingContext: IContext, fn: (bindingContext: IContext) => void);
>_forEachBindingContext : { (bindingContext: IContext, fn: (bindingContext: IContext) => void): any; (bindingContextArray: IContext[], fn: (bindingContext: IContext) => void): any; }
>bindingContext : IContext
>IContext : IContext
>fn : (bindingContext: IContext) => void
>bindingContext : IContext
>IContext : IContext
private _forEachBindingContext(bindingContextArray: Array<IContext>, fn: (bindingContext: IContext) => void);
>_forEachBindingContext : { (bindingContext: IContext, fn: (bindingContext: IContext) => void): any; (bindingContextArray: IContext[], fn: (bindingContext: IContext) => void): any; }
>bindingContextArray : IContext[]
>Array : T[]
>IContext : IContext
>fn : (bindingContext: IContext) => void
>bindingContext : IContext
>IContext : IContext
private _forEachBindingContext(context, fn: (bindingContext: IContext) => void): void {
>_forEachBindingContext : { (bindingContext: IContext, fn: (bindingContext: IContext) => void): any; (bindingContextArray: IContext[], fn: (bindingContext: IContext) => void): any; }
>context : any
>fn : (bindingContext: IContext) => void
>bindingContext : IContext
>IContext : IContext
// Function here
}
private overloadWithArityDifference(bindingContext: IContext);
>overloadWithArityDifference : { (bindingContext: IContext): any; (bindingContextArray: IContext[], fn: (bindingContext: IContext) => void): any; }
>bindingContext : IContext
>IContext : IContext
private overloadWithArityDifference(bindingContextArray: Array<IContext>, fn: (bindingContext: IContext) => void);
>overloadWithArityDifference : { (bindingContext: IContext): any; (bindingContextArray: IContext[], fn: (bindingContext: IContext) => void): any; }
>bindingContextArray : IContext[]
>Array : T[]
>IContext : IContext
>fn : (bindingContext: IContext) => void
>bindingContext : IContext
>IContext : IContext
private overloadWithArityDifference(context): void {
>overloadWithArityDifference : { (bindingContext: IContext): any; (bindingContextArray: IContext[], fn: (bindingContext: IContext) => void): any; }
>context : any
// Function here
}
}
declare class c2 {
>c2 : c2
private overload1(context, fn);
>overload1 : (context: any, fn: any) => any
>context : any
>fn : any
private overload2(context);
>overload2 : { (context: any): any; (context: any, fn: any): any; }
>context : any
private overload2(context, fn);
>overload2 : { (context: any): any; (context: any, fn: any): any; }
>context : any
>fn : any
}

View file

@ -0,0 +1,24 @@
// @declaration: true
interface IContext {
someMethod();
}
class c1 {
private _forEachBindingContext(bindingContext: IContext, fn: (bindingContext: IContext) => void);
private _forEachBindingContext(bindingContextArray: Array<IContext>, fn: (bindingContext: IContext) => void);
private _forEachBindingContext(context, fn: (bindingContext: IContext) => void): void {
// Function here
}
private overloadWithArityDifference(bindingContext: IContext);
private overloadWithArityDifference(bindingContextArray: Array<IContext>, fn: (bindingContext: IContext) => void);
private overloadWithArityDifference(context): void {
// Function here
}
}
declare class c2 {
private overload1(context, fn);
private overload2(context);
private overload2(context, fn);
}