TypeScript/tests/baselines/reference/inferingFromAny.types
2017-03-21 07:36:24 -07:00

301 lines
4.7 KiB
Plaintext

=== tests/cases/conformance/salsa/a.ts ===
var a: any;
>a : any
var t: [any, any];
>t : [any, any]
declare function f1<T>(t: T): T
>f1 : <T>(t: T) => T
>T : T
>t : T
>T : T
>T : T
declare function f2<T>(t: T[]): T;
>f2 : <T>(t: T[]) => T
>T : T
>t : T[]
>T : T
>T : T
declare function f3<T, U>(t: [T, U]): [T, U];
>f3 : <T, U>(t: [T, U]) => [T, U]
>T : T
>U : U
>t : [T, U]
>T : T
>U : U
>T : T
>U : U
declare function f4<T>(x: { bar: T; baz: T }): T;
>f4 : <T>(x: { bar: T; baz: T; }) => T
>T : T
>x : { bar: T; baz: T; }
>bar : T
>T : T
>baz : T
>T : T
>T : T
declare function f5<T>(x: (a: T) => void): T;
>f5 : <T>(x: (a: T) => void) => T
>T : T
>x : (a: T) => void
>a : T
>T : T
>T : T
declare function f6<T>(x: new (a: T) => {}): T;
>f6 : <T>(x: new (a: T) => {}) => T
>T : T
>x : new (a: T) => {}
>a : T
>T : T
>T : T
declare function f7<T>(x: (a: any) => a is T): T;
>f7 : <T>(x: (a: any) => a is T) => T
>T : T
>x : (a: any) => a is T
>a : any
>a : any
>T : T
>T : T
declare function f8<T>(x: () => T): T;
>f8 : <T>(x: () => T) => T
>T : T
>x : () => T
>T : T
>T : T
declare function f9<T>(x: new () => T): T;
>f9 : <T>(x: new () => T) => T
>T : T
>x : new () => T
>T : T
>T : T
declare function f10<T>(x: { [x: string]: T }): T;
>f10 : <T>(x: { [x: string]: T; }) => T
>T : T
>x : { [x: string]: T; }
>x : string
>T : T
>T : T
declare function f11<T>(x: { [x: number]: T }): T;
>f11 : <T>(x: { [x: number]: T; }) => T
>T : T
>x : { [x: number]: T; }
>x : number
>T : T
>T : T
declare function f12<T, U>(x: T | U): [T, U];
>f12 : <T, U>(x: T | U) => [T, U]
>T : T
>U : U
>x : T | U
>T : T
>U : U
>T : T
>U : U
declare function f13<T, U>(x: T & U): [T, U];
>f13 : <T, U>(x: T & U) => [T, U]
>T : T
>U : U
>x : T & U
>T : T
>U : U
>T : T
>U : U
declare function f14<T, U>(x: { a: T | U, b: U & T }): [T, U];
>f14 : <T, U>(x: { a: T | U; b: U & T; }) => [T, U]
>T : T
>U : U
>x : { a: T | U; b: U & T; }
>a : T | U
>T : T
>U : U
>b : U & T
>U : U
>T : T
>T : T
>U : U
interface I<T> { }
>I : I<T>
>T : T
declare function f15<T>(x: I<T>): T;
>f15 : <T>(x: I<T>) => T
>T : T
>x : I<T>
>I : I<T>
>T : T
>T : T
declare function f16<T>(x: Partial<T>): T;
>f16 : <T>(x: Partial<T>) => T
>T : T
>x : Partial<T>
>Partial : Partial<T>
>T : T
>T : T
declare function f17<T, K>(x: {[P in keyof T]: K}): T;
>f17 : <T, K>(x: { [P in keyof T]: K; }) => T
>T : T
>K : K
>x : { [P in keyof T]: K; }
>P : P
>T : T
>K : K
>T : T
declare function f18<T, K extends keyof T>(x: {[P in K]: T[P]}): T;
>f18 : <T, K extends keyof T>(x: { [P in K]: T[P]; }) => T
>T : T
>K : K
>T : T
>x : { [P in K]: T[P]; }
>P : P
>K : K
>T : T
>P : P
>T : T
declare function f19<T, K extends keyof T>(k: K, x: T[K]): T;
>f19 : <T, K extends keyof T>(k: K, x: T[K]) => T
>T : T
>K : K
>T : T
>k : K
>K : K
>x : T[K]
>T : T
>K : K
>T : T
=== tests/cases/conformance/salsa/a.js ===
var a = f1(a);
>a : any
>f1(a) : any
>f1 : <T>(t: T) => T
>a : any
var a = f2(a);
>a : any
>f2(a) : any
>f2 : <T>(t: T[]) => T
>a : any
var t = f3(a);
>t : [any, any]
>f3(a) : [any, any]
>f3 : <T, U>(t: [T, U]) => [T, U]
>a : any
var a = f4(a);
>a : any
>f4(a) : any
>f4 : <T>(x: { bar: T; baz: T; }) => T
>a : any
var a = f5(a);
>a : any
>f5(a) : any
>f5 : <T>(x: (a: T) => void) => T
>a : any
var a = f6(a);
>a : any
>f6(a) : any
>f6 : <T>(x: new (a: T) => {}) => T
>a : any
var a = f7(a);
>a : any
>f7(a) : any
>f7 : <T>(x: (a: any) => a is T) => T
>a : any
var a = f8(a);
>a : any
>f8(a) : any
>f8 : <T>(x: () => T) => T
>a : any
var a = f9(a);
>a : any
>f9(a) : any
>f9 : <T>(x: new () => T) => T
>a : any
var a = f10(a);
>a : any
>f10(a) : any
>f10 : <T>(x: { [x: string]: T; }) => T
>a : any
var a = f11(a);
>a : any
>f11(a) : any
>f11 : <T>(x: { [x: number]: T; }) => T
>a : any
var t = f12(a);
>t : [any, any]
>f12(a) : [any, any]
>f12 : <T, U>(x: T | U) => [T, U]
>a : any
var t = f13(a);
>t : [any, any]
>f13(a) : [any, any]
>f13 : <T, U>(x: T & U) => [T, U]
>a : any
var t = f14(a);
>t : [any, any]
>f14(a) : [any, any]
>f14 : <T, U>(x: { a: T | U; b: U & T; }) => [T, U]
>a : any
var a = f15(a);
>a : any
>f15(a) : any
>f15 : <T>(x: I<T>) => T
>a : any
var a = f16(a);
>a : any
>f16(a) : any
>f16 : <T>(x: Partial<T>) => T
>a : any
var a = f17(a);
>a : any
>f17(a) : any
>f17 : <T, K>(x: { [P in keyof T]: K; }) => T
>a : any
var a = f18(a);
>a : any
>f18(a) : any
>f18 : <T, K extends keyof T>(x: { [P in K]: T[P]; }) => T
>a : any
var a = f19(a, a);
>a : any
>f19(a, a) : any
>f19 : <T, K extends keyof T>(k: K, x: T[K]) => T
>a : any
>a : any