65 lines
1.8 KiB
Plaintext
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
|
|
}
|
|
|