microsoft / microsoft/TypeScript
Using classes in jsdoc comments results in different behaviors depending on how the class was required
Personne n'a encore pris cette issue.
- Langage dominant
- Go
- Étoiles
- 111k
- Forks
- 14.4k
- Merge moyen
- 1 j 19 h
- PR mergées (30 j)
- 117
Description
TS Template added by @mjbvz
TypeScript Version: 3.9.1
Search Terms
- javascript
- jsdoc
Issue Type: Bug
I have a class Foo in a file deep in my project.
Everything works fine if I require it directly: intellisense understands that when I use Foo in my jsdoc comments, I mean that I want instances of Foo:

But if I require the same file through other files, intellisense thinks I want the Foo class:

I have created an example repo that reproduces the problem here:
https://github.com/gaelhameon/vscode-intellisense-issue
Is this the expected behavior ?
If it is, is there a way to have the "instance" behavior without having to require the file directly ?
Thanks in advance!
VS Code version: Code 1.45.0 (d69a79b73808559a91206d73d7717ff5f798f23c, 2020-05-07T16:18:48.860Z)
OS version: Windows_NT x64 10.0.18362
System Info
| Item | Value |
|---|---|
| CPUs | Intel(R) Core(TM) i5-8265U CPU @ 1.60GHz (8 x 1800) |
| GPU Status | 2d_canvas: enabled flash_3d: enabled flash_stage3d: enabled flash_stage3d_baseline: enabled gpu_compositing: enabled multiple_raster_threads: enabled_on oop_rasterization: disabled_off protected_video_decode: enabled rasterization: enabled skia_renderer: disabled_off_ok video_decode: enabled viz_display_compositor: enabled_on viz_hit_test_surface_layer: disabled_off_ok webgl: enabled webgl2: enabled |
| Load (avg) | undefined |
| Memory (System) | 7.82GB (1.53GB free) |
| Process Argv | |
| Screen Reader | no |
| VM | 0% |
Extensions (5)
| Extension | Author (truncated) | Version |
|---|---|---|
| javascript-test-runner-reloaded | ale | 2.2.1 |
| vscode-eslint | dba | 2.1.5 |
| gitlens | eam | 10.2.1 |
| vscode-pull-request-github | Git | 0.16.0 |
| vscode-commitizen | Kni | 0.8.4 |
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par le dépôt de reproduction lié et comparez les deux chemins de require décrits dans l’issue avec TypeScript 3.9.1. Suivez la manière dont JSDoc résout Foo lorsque la classe est required directement, par rapport au cas où elle est required via d’autres fichiers, puis vérifiez le comportement avec la configuration VS Code signalée. Le travail est terminé lorsque les deux chemins d’importation produisent un IntelliSense cohérent orienté instance, avec un test de régression couvrant la reproduction.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- javascript, typescript
- Domaine
- devtools
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 25/100