|
| 1 | +/// <reference path='fourslash.ts'/> |
| 2 | + |
| 3 | + |
| 4 | +//// function fnTest(str: string, num: number) { } |
| 5 | +//// declare function wrap<A extends any[], R>(fn: (...a: A) => R) : (...a: A) => R; |
| 6 | +//// var fnWrapped = wrap(fnTest); |
| 7 | +//// fnWrapped/*3*/(/*1*/'', /*2*/5); |
| 8 | +//// function fnTestVariadic (str: string, ...num: number[]) { } |
| 9 | +//// var fnVariadicWrapped = wrap(fnTestVariadic); |
| 10 | +//// fnVariadicWrapped/*4*/(/*5*/'', /*6*/5); |
| 11 | +//// function fnNoParams () { } |
| 12 | +//// var fnNoParamsWrapped = wrap(fnNoParams); |
| 13 | +//// fnNoParamsWrapped/*7*/(/*8*/); |
| 14 | + |
| 15 | +verify.quickInfoAt("3", "var fnWrapped: (str: string, num: number) => void"); |
| 16 | +verify.signatureHelp( |
| 17 | + { |
| 18 | + marker: "1", |
| 19 | + text: "fnWrapped(str: string, num: number): void", |
| 20 | + parameterCount: 2, |
| 21 | + parameterName: "str", |
| 22 | + parameterSpan: "str: string", |
| 23 | + }, |
| 24 | + { |
| 25 | + marker: "2", |
| 26 | + parameterName: "num", |
| 27 | + parameterSpan: "num: number", |
| 28 | + }, |
| 29 | +); |
| 30 | + |
| 31 | +verify.quickInfoAt("4", "var fnVariadicWrapped: (str: string, ...num: number[]) => void"); |
| 32 | +verify.signatureHelp( |
| 33 | + { |
| 34 | + marker: "5", |
| 35 | + text: "fnVariadicWrapped(str: string, ...num: number[]): void", |
| 36 | + parameterCount: 2, |
| 37 | + parameterName: "str", |
| 38 | + parameterSpan: "str: string", |
| 39 | + isVariadic: true, |
| 40 | + }, |
| 41 | + { |
| 42 | + marker: "6", |
| 43 | + parameterName: "num", |
| 44 | + parameterSpan: "...num: number[]", |
| 45 | + isVariadic: true, |
| 46 | + }, |
| 47 | +); |
| 48 | + |
| 49 | +verify.quickInfoAt("7", "var fnNoParamsWrapped: () => void"); |
| 50 | +verify.signatureHelp( |
| 51 | + { |
| 52 | + marker: "8", |
| 53 | + text: "fnNoParamsWrapped(): void", |
| 54 | + parameterCount: 0, |
| 55 | + } |
| 56 | +); |
0 commit comments