diff --git a/extensions/typescript/src/features/signatureHelpProvider.ts b/extensions/typescript/src/features/signatureHelpProvider.ts index bf3d9faa9a7..f43fe461de9 100644 --- a/extensions/typescript/src/features/signatureHelpProvider.ts +++ b/extensions/typescript/src/features/signatureHelpProvider.ts @@ -38,7 +38,15 @@ export default class TypeScriptSignatureHelpProvider implements SignatureHelpPro result.activeSignature = info.selectedItemIndex; result.activeParameter = info.argumentIndex; - info.items.forEach(item => { + if (info.items[info.selectedItemIndex].isVariadic) { + } + + info.items.forEach((item, i) => { + + // keep active parameter in bounds + if (i === info.selectedItemIndex && item.isVariadic) { + result.activeParameter = Math.min(info.argumentIndex, item.parameters.length - 1); + } let signature = new SignatureInformation(''); signature.label += Previewer.plain(item.prefixDisplayParts);