/// ////interface T1 {} ////class T2 {} ////type T3 = "a" | "b"; //// ////declare function foo(strings: TemplateStringsArray, ...values: T[]): void; //// /////*1*/foo``; /////*2*/foo``; /////*3*/foo<{ a: number }>``; /////*4*/foo``; /////*5*/foo``; /////*6*/foo``; /////*7*/foo``; verify.quickInfoAt("1", "function foo(strings: TemplateStringsArray, ...values: number[]): void"); verify.quickInfoAt("2", "function foo(strings: TemplateStringsArray, ...values: (string | number)[]): void"); verify.quickInfoAt("3", `function foo<{ a: number; }>(strings: TemplateStringsArray, ...values: { a: number; }[]): void`); verify.quickInfoAt("4", "function foo(strings: TemplateStringsArray, ...values: T1[]): void"); verify.quickInfoAt("5", "function foo(strings: TemplateStringsArray, ...values: T2[]): void"); verify.quickInfoAt("6", "function foo(strings: TemplateStringsArray, ...values: T3[]): void"); verify.quickInfoAt("7", "function foo(strings: TemplateStringsArray, ...values: unknown[]): void");