microsoft / microsoft/TypeScript

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

Aperta
#38,484 3 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Bug Domain: JSDoc
Lingua principale
Go
Stelle
111k
Fork
14.3k
Merge medio
1g 19h
PR unite (30g)
117

Descrizione

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

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia dal repository di riproduzione collegato e confronta i due percorsi di require descritti nell’issue con TypeScript 3.9.1. Traccia il modo in cui JSDoc risolve Foo quando la classe viene required direttamente rispetto a quando viene required tramite altri file, quindi verifica il comportamento con la configurazione di VS Code riportata. Il lavoro è completo quando i due percorsi di importazione producono un IntelliSense coerente orientato alle istanze, con un test di regressione che copra la riproduzione.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
javascript, typescript
Ambito
devtools
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
25/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.