microsoft / microsoft/TypeScript

Using classes in jsdoc comments results in different behaviors depending on how the class was required

Offen
#38,484 3 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bug Domain: JSDoc
Vorherrschende Sprache
Go
Sterne
111k
Forks
14.3k
Ø Merge
2 T. 4 Std.
Gemergte PRs (30 T.)
132

Beschreibung

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:

image

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

image

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

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit dem verlinkten Reproduktions-Repository und vergleiche die beiden im Issue unter TypeScript 3.9.1 beschriebenen require-Pfade. Verfolge, wie JSDoc Foo auflöst, wenn die Klasse direkt required wird, im Vergleich dazu, wenn sie über andere Dateien required wird, und überprüfe anschließend das Verhalten anhand des gemeldeten VS Code-Setups. Als abgeschlossen gilt die Aufgabe, wenn die beiden Importpfade konsistente instanzorientierte IntelliSense erzeugen und ein Regressionstest die Reproduktion abdeckt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
javascript, typescript
Bereich
devtools
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.