Added tests.
This commit is contained in:
parent
23ed9f8423
commit
b409888cbc
|
@ -0,0 +1,44 @@
|
|||
// @target: esnext
|
||||
|
||||
declare function f<T>(strs: TemplateStringsArray, ...callbacks: Array<(x: T) => any>): void;
|
||||
|
||||
interface Stuff {
|
||||
x: number;
|
||||
y: string;
|
||||
z: boolean;
|
||||
}
|
||||
|
||||
export const a = f<Stuff> `
|
||||
hello
|
||||
${stuff => stuff.x}
|
||||
brave
|
||||
${stuff => stuff.y}
|
||||
world
|
||||
${stuff => stuff.z}
|
||||
`;
|
||||
|
||||
declare function g<Input, T, U, V>(
|
||||
strs: TemplateStringsArray,
|
||||
t: (i: Input) => T, u: (i: Input) => U, v: (i: Input) => V): T | U | V;
|
||||
|
||||
export const b = g<Stuff, number, string, boolean> `
|
||||
hello
|
||||
${stuff => stuff.x}
|
||||
brave
|
||||
${stuff => stuff.y}
|
||||
world
|
||||
${stuff => stuff.z}
|
||||
`;
|
||||
|
||||
declare let obj: {
|
||||
prop: <T>(strs: TemplateStringsArray, x: (input: T) => T) => {
|
||||
returnedObjProp: {
|
||||
lastOne: T
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export const c = obj["prop"]<Stuff> `${(input) => { ...input }}`
|
||||
c.returnedProp.x;
|
||||
c.returnedProp.y;
|
||||
c.returnedProp.z;
|
Loading…
Reference in a new issue