TypeScript/tests/baselines/reference/callWithSpread2.types
2019-04-04 11:47:26 -07:00

168 lines
4 KiB
Plaintext

=== tests/cases/conformance/expressions/functionCalls/callWithSpread2.ts ===
declare function all(a?: number, b?: number): void;
>all : (a?: number, b?: number) => void
>a : number
>b : number
declare function weird(a?: number | string, b?: number | string): void;
>weird : (a?: string | number, b?: string | number) => void
>a : string | number
>b : string | number
declare function prefix(s: string, a?: number, b?: number): void;
>prefix : (s: string, a?: number, b?: number) => void
>s : string
>a : number
>b : number
declare function rest(s: string, a?: number, b?: number, ...rest: number[]): void;
>rest : (s: string, a?: number, b?: number, ...rest: number[]) => void
>s : string
>a : number
>b : number
>rest : number[]
declare function normal(s: string): void;
>normal : (s: string) => void
>s : string
declare function thunk(): string;
>thunk : () => string
declare function prefix2(s: string, n: number, a?: number, b?: number): void;
>prefix2 : (s: string, n: number, a?: number, b?: number) => void
>s : string
>n : number
>a : number
>b : number
declare var ns: number[];
>ns : number[]
declare var mixed: (number | string)[];
>mixed : (string | number)[]
declare var tuple: [number, string];
>tuple : [number, string]
// good
all(...ns)
>all(...ns) : void
>all : (a?: number, b?: number) => void
>...ns : number
>ns : number[]
weird(...ns)
>weird(...ns) : void
>weird : (a?: string | number, b?: string | number) => void
>...ns : number
>ns : number[]
weird(...mixed)
>weird(...mixed) : void
>weird : (a?: string | number, b?: string | number) => void
>...mixed : string | number
>mixed : (string | number)[]
weird(...tuple)
>weird(...tuple) : void
>weird : (a?: string | number, b?: string | number) => void
>...tuple : string | number
>tuple : [number, string]
prefix("a", ...ns)
>prefix("a", ...ns) : void
>prefix : (s: string, a?: number, b?: number) => void
>"a" : "a"
>...ns : number
>ns : number[]
rest("d", ...ns)
>rest("d", ...ns) : void
>rest : (s: string, a?: number, b?: number, ...rest: number[]) => void
>"d" : "d"
>...ns : number
>ns : number[]
// extra arguments
normal("g", ...ns)
>normal("g", ...ns) : void
>normal : (s: string) => void
>"g" : "g"
>...ns : number
>ns : number[]
thunk(...ns)
>thunk(...ns) : string
>thunk : () => string
>...ns : number
>ns : number[]
// bad
all(...mixed)
>all(...mixed) : void
>all : (a?: number, b?: number) => void
>...mixed : string | number
>mixed : (string | number)[]
all(...tuple)
>all(...tuple) : void
>all : (a?: number, b?: number) => void
>...tuple : string | number
>tuple : [number, string]
prefix("b", ...mixed)
>prefix("b", ...mixed) : void
>prefix : (s: string, a?: number, b?: number) => void
>"b" : "b"
>...mixed : string | number
>mixed : (string | number)[]
prefix("c", ...tuple)
>prefix("c", ...tuple) : void
>prefix : (s: string, a?: number, b?: number) => void
>"c" : "c"
>...tuple : string | number
>tuple : [number, string]
rest("e", ...mixed)
>rest("e", ...mixed) : void
>rest : (s: string, a?: number, b?: number, ...rest: number[]) => void
>"e" : "e"
>...mixed : string | number
>mixed : (string | number)[]
rest("f", ...tuple)
>rest("f", ...tuple) : void
>rest : (s: string, a?: number, b?: number, ...rest: number[]) => void
>"f" : "f"
>...tuple : string | number
>tuple : [number, string]
prefix(...ns) // required parameters are required
>prefix(...ns) : void
>prefix : (s: string, a?: number, b?: number) => void
>...ns : number
>ns : number[]
prefix(...mixed)
>prefix(...mixed) : void
>prefix : (s: string, a?: number, b?: number) => void
>...mixed : string | number
>mixed : (string | number)[]
prefix(...tuple)
>prefix(...tuple) : void
>prefix : (s: string, a?: number, b?: number) => void
>...tuple : string | number
>tuple : [number, string]
prefix2("g", ...ns);
>prefix2("g", ...ns) : void
>prefix2 : (s: string, n: number, a?: number, b?: number) => void
>"g" : "g"
>...ns : number
>ns : number[]