TypeScript/tests/baselines/reference/overloadReturnTypes.types
2015-04-15 16:44:20 -07:00

65 lines
1.8 KiB
Plaintext

=== tests/cases/compiler/overloadReturnTypes.ts ===
class Accessor {}
>Accessor : Accessor
function attr(name: string): string;
>attr : { (name: string): string; (name: string, value: string): Accessor; (map: any): Accessor; }
>name : string
function attr(name: string, value: string): Accessor;
>attr : { (name: string): string; (name: string, value: string): Accessor; (map: any): Accessor; }
>name : string
>value : string
>Accessor : Accessor
function attr(map: any): Accessor;
>attr : { (name: string): string; (name: string, value: string): Accessor; (map: any): Accessor; }
>map : any
>Accessor : Accessor
function attr(nameOrMap: any, value?: string): any {
>attr : { (name: string): string; (name: string, value: string): Accessor; (map: any): Accessor; }
>nameOrMap : any
>value : string
if (nameOrMap && typeof nameOrMap === "object") {
>nameOrMap && typeof nameOrMap === "object" : boolean
>nameOrMap : any
>typeof nameOrMap === "object" : boolean
>typeof nameOrMap : string
>nameOrMap : any
>"object" : string
// handle map case
return new Accessor;
>new Accessor : Accessor
>Accessor : typeof Accessor
}
else {
// handle string case
return "s";
>"s" : string
}
}
interface IFace {
>IFace : IFace
attr(name:string):string;
>attr : { (name: string): string; (name: string, value: string): Accessor; (map: any): Accessor; }
>name : string
attr(name: string, value: string): Accessor;
>attr : { (name: string): string; (name: string, value: string): Accessor; (map: any): Accessor; }
>name : string
>value : string
>Accessor : Accessor
attr(map: any): Accessor;
>attr : { (name: string): string; (name: string, value: string): Accessor; (map: any): Accessor; }
>map : any
>Accessor : Accessor
}