TypeScript/tests/baselines/reference/parenthesizedContexualTyping3.js
2015-01-23 17:28:30 -08:00

35 lines
1.6 KiB
JavaScript

//// [parenthesizedContexualTyping3.ts]
// Contextual typing for parenthesized substitution expressions in tagged templates.
/**
* tempFun - Can't have fun for too long.
*/
function tempFun<T>(tempStrs: TemplateStringsArray, g: (x: T) => T, x: T): T;
function tempFun<T>(tempStrs: TemplateStringsArray, g: (x: T) => T, h: (y: T) => T, x: T): T;
function tempFun<T>(tempStrs: TemplateStringsArray, g: (x: T) => T, x: T): T {
return g(x);
}
var a = tempFun `${ x => x } ${ 10 }`
var b = tempFun `${ (x => x) } ${ 10 }`
var c = tempFun `${ ((x => x)) } ${ 10 }`
var d = tempFun `${ x => x } ${ x => x } ${ 10 }`
var e = tempFun `${ x => x } ${ (x => x) } ${ 10 }`
var f = tempFun `${ x => x } ${ ((x => x)) } ${ 10 }`
var g = tempFun `${ (x => x) } ${ (((x => x))) } ${ 10 }`
var h = tempFun `${ (x => x) } ${ (((x => x))) } ${ undefined }`
//// [parenthesizedContexualTyping3.js]
// Contextual typing for parenthesized substitution expressions in tagged templates.
function tempFun(tempStrs, g, x) {
return g(x);
}
var a = tempFun `${(x) => { return x; }} ${10}`;
var b = tempFun `${((x) => { return x; })} ${10}`;
var c = tempFun `${(((x) => { return x; }))} ${10}`;
var d = tempFun `${(x) => { return x; }} ${(x) => { return x; }} ${10}`;
var e = tempFun `${(x) => { return x; }} ${((x) => { return x; })} ${10}`;
var f = tempFun `${(x) => { return x; }} ${(((x) => { return x; }))} ${10}`;
var g = tempFun `${((x) => { return x; })} ${((((x) => { return x; })))} ${10}`;
var h = tempFun `${((x) => { return x; })} ${((((x) => { return x; })))} ${undefined}`;