diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 070e774d82f..4fd7f77978a 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -6835,7 +6835,7 @@ namespace ts { let child: JSDocTypeTag | JSDocPropertyTag | false; let jsdocTypeLiteral: JSDocTypeLiteral | undefined; let childTypeTag: JSDocTypeTag | undefined; - const start = scanner.getStartPos(); + const start = atToken.pos; while (child = tryParse(() => parseChildPropertyTag())) { if (!jsdocTypeLiteral) { jsdocTypeLiteral = createNode(SyntaxKind.JSDocTypeLiteral, start); diff --git a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.typedefTagWithChildrenTags.json b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.typedefTagWithChildrenTags.json index cf523b71c99..6d2fb4ada2f 100644 --- a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.typedefTagWithChildrenTags.json +++ b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.typedefTagWithChildrenTags.json @@ -32,7 +32,7 @@ }, "typeExpression": { "kind": "JSDocTypeLiteral", - "pos": 28, + "pos": 8, "end": 100, "jsDocPropertyTags": [ { diff --git a/tests/cases/fourslash/goToTypeDefinition_typedef.ts b/tests/cases/fourslash/goToTypeDefinition_typedef.ts new file mode 100644 index 00000000000..b6a9587d2f7 --- /dev/null +++ b/tests/cases/fourslash/goToTypeDefinition_typedef.ts @@ -0,0 +1,14 @@ +/// + +// @allowJs: true + +// @Filename: /a.js +/////** +//// * /*def*/@typedef {object} I +//// * @property {number} x +//// */ +//// +/////** @type {I} */ +////const /*ref*/i = { x: 0 }; + +verify.goToType("ref", "def");