diff --git a/src/compiler/utilities.ts b/src/compiler/utilities.ts index b0cfb3eff24..58936916842 100644 --- a/src/compiler/utilities.ts +++ b/src/compiler/utilities.ts @@ -2343,7 +2343,7 @@ namespace ts { export function getTypeParameterFromJsDoc(node: TypeParameterDeclaration & { parent: JSDocTemplateTag }): TypeParameterDeclaration | undefined { const name = node.name.escapedText; const { typeParameters } = (node.parent.parent.parent as SignatureDeclaration | InterfaceDeclaration | ClassDeclaration); - return find(typeParameters!, p => p.name.escapedText === name); + return typeParameters && find(typeParameters, p => p.name.escapedText === name); } export function hasRestParameter(s: SignatureDeclaration | JSDocSignature): boolean { diff --git a/tests/cases/fourslash/jsDocFunctionSignatures13.ts b/tests/cases/fourslash/jsDocFunctionSignatures13.ts new file mode 100644 index 00000000000..49da2cb86e5 --- /dev/null +++ b/tests/cases/fourslash/jsDocFunctionSignatures13.ts @@ -0,0 +1,10 @@ +/// +//// /** +//// * @template {string} K/**/ a golden opportunity +//// */ +//// function Multimap(iv) { +//// }; + + +goTo.marker(''); +verify.quickInfoIs("any");