TypeScript/tests/cases/fourslash/signatureHelpCallExpressionTuples.ts

57 lines
1.6 KiB
TypeScript

/// <reference path='fourslash.ts'/>
//// function fnTest(str: string, num: number) { }
//// declare function wrap<A extends any[], R>(fn: (...a: A) => R) : (...a: A) => R;
//// var fnWrapped = wrap(fnTest);
//// fnWrapped/*3*/(/*1*/'', /*2*/5);
//// function fnTestVariadic (str: string, ...num: number[]) { }
//// var fnVariadicWrapped = wrap(fnTestVariadic);
//// fnVariadicWrapped/*4*/(/*5*/'', /*6*/5);
//// function fnNoParams () { }
//// var fnNoParamsWrapped = wrap(fnNoParams);
//// fnNoParamsWrapped/*7*/(/*8*/);
verify.quickInfoAt("3", "var fnWrapped: (str: string, num: number) => void");
verify.signatureHelp(
{
marker: "1",
text: "fnWrapped(str: string, num: number): void",
parameterCount: 2,
parameterName: "str",
parameterSpan: "str: string",
},
{
marker: "2",
parameterName: "num",
parameterSpan: "num: number",
},
);
verify.quickInfoAt("4", "var fnVariadicWrapped: (str: string, ...num: number[]) => void");
verify.signatureHelp(
{
marker: "5",
text: "fnVariadicWrapped(str: string, ...num: number[]): void",
parameterCount: 2,
parameterName: "str",
parameterSpan: "str: string",
isVariadic: true,
},
{
marker: "6",
parameterName: "num",
parameterSpan: "...num: number[]",
isVariadic: true,
},
);
verify.quickInfoAt("7", "var fnNoParamsWrapped: () => void");
verify.signatureHelp(
{
marker: "8",
text: "fnNoParamsWrapped(): void",
parameterCount: 0,
}
);