Skip to content

Commit 606ac0e

Browse files
committed
Port #9621 to release-2.0
1 parent fa0fab1 commit 606ac0e

File tree

2 files changed

+32
-5
lines changed

2 files changed

+32
-5
lines changed

src/compiler/checker.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3160,6 +3160,9 @@ namespace ts {
31603160
if (declaration.kind === SyntaxKind.ExportAssignment) {
31613161
return links.type = checkExpression((<ExportAssignment>declaration).expression);
31623162
}
3163+
if (declaration.flags & NodeFlags.JavaScriptFile && declaration.kind === SyntaxKind.JSDocPropertyTag && (<JSDocPropertyTag>declaration).typeExpression) {
3164+
return links.type = getTypeFromTypeNode((<JSDocPropertyTag>declaration).typeExpression.type);
3165+
}
31633166
// Handle variable, parameter or property
31643167
if (!pushTypeResolution(symbol, TypeSystemPropertyName.Type)) {
31653168
return unknownType;

tests/cases/fourslash/server/jsdocTypedefTag.ts

Lines changed: 29 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,16 +32,24 @@
3232
//// var numberLike; numberLike./*numberLike*/
3333
////
3434
//// /** @type {Person} */
35-
//// var p;p./*person*/
35+
//// var p;p./*person*/;
36+
//// p.personName./*personName*/;
37+
//// p.personAge./*personAge*/;
3638
////
3739
//// /** @type {Animal} */
38-
//// var a;a./*animal*/
40+
//// var a;a./*animal*/;
41+
//// a.animalName./*animalName*/;
42+
//// a.animalAge./*animalAge*/;
3943
////
4044
//// /** @type {Cat} */
41-
//// var c;c./*cat*/
45+
//// var c;c./*cat*/;
46+
//// c.catName./*catName*/;
47+
//// c.catAge./*catAge*/;
4248
////
4349
//// /** @type {Dog} */
44-
//// var d;d./*dog*/
50+
//// var d;d./*dog*/;
51+
//// d.dogName./*dogName*/;
52+
//// d.dogAge./*dogAge*/;
4553

4654
goTo.marker('numberLike');
4755
verify.memberListContains('charAt');
@@ -50,15 +58,31 @@ verify.memberListContains('toExponential');
5058
goTo.marker('person');
5159
verify.memberListContains('personName');
5260
verify.memberListContains('personAge');
61+
goTo.marker('personName');
62+
verify.memberListContains('charAt');
63+
goTo.marker('personAge');
64+
verify.memberListContains('toExponential');
5365

5466
goTo.marker('animal');
5567
verify.memberListContains('animalName');
5668
verify.memberListContains('animalAge');
69+
goTo.marker('animalName');
70+
verify.memberListContains('charAt');
71+
goTo.marker('animalAge');
72+
verify.memberListContains('toExponential');
5773

5874
goTo.marker('dog');
5975
verify.memberListContains('dogName');
6076
verify.memberListContains('dogAge');
77+
goTo.marker('dogName');
78+
verify.memberListContains('charAt');
79+
goTo.marker('dogAge');
80+
verify.memberListContains('toExponential');
6181

6282
goTo.marker('cat');
6383
verify.memberListContains('catName');
64-
verify.memberListContains('catAge');
84+
verify.memberListContains('catAge');
85+
goTo.marker('catName');
86+
verify.memberListContains('charAt');
87+
goTo.marker('catAge');
88+
verify.memberListContains('toExponential');

0 commit comments

Comments
 (0)