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