microsoft / microsoft/TypeScript

Method use showing as deprecated when callback function includes type hint

Ouverte
#59,488 2 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Needs More Info
Langage dominant
Go
Étoiles
111k
Forks
14.4k
Merge moyen
1 j 19 h
PR mergées (30 j)
117

Description

Type: Bug

Using jQuery globally, I noticed that the usage of .on() is showing as deprecated when my event handler function includes a typehint. I could be wrong but I don't believe this is due to the type definitions and might be something with TS.

The below shows .on with a strikethrough that it is deprecated.

$(document).on("click", ".search-tag", /** @this {HTMLElement} */ function() {
    selectedKeywords.delete(this.dataset.module);
    $(this).remove();
});

image

Removing the typehint from the callback makes the deprecation notice go away.

$(document).on("click", ".search-tag", function() {
    selectedKeywords.delete(this.dataset.module);
    $(this).remove();
});

image

Below is what the hover shows for the deprecation:
image

It seems the be complaining about the use of JQueryEventObject but only when the type hint is present.

VS Code version: Code 1.91.1 (f1e16e1e6214d7c44d078b1f0607b2388f29d729, 2024-07-09T22:06:49.809Z)
OS version: Windows_NT x64 10.0.22631
Modes:
Remote OS version: Linux x64 4.18.0-553.8.1.el8_10.x86_64

System Info
Item Value
CPUs 13th Gen Intel(R) Core(TM) i7-1360P (16 x 2611)
GPU Status 2d_canvas: enabled
canvas_oop_rasterization: enabled_on
direct_rendering_display_compositor: disabled_off_ok
gpu_compositing: enabled
multiple_raster_threads: enabled_on
opengl: enabled_on
rasterization: enabled
raw_draw: disabled_off_ok
skia_graphite: disabled_off
video_decode: enabled
video_encode: enabled
vulkan: disabled_off
webgl: enabled
webgl2: enabled
webgpu: enabled
Load (avg) undefined
Memory (System) 31.68GB (18.95GB free)
Process Argv --folder-uri vscode-remote://ssh-remote%2Bmlinks-dev/home/cgoepfrich2/public_html/mlinks
Screen Reader no
VM 0%
Item Value
Remote SSH: mlinks-dev
OS Linux x64 4.18.0-553.8.1.el8_10.x86_64
CPUs Intel(R) Xeon(R) Gold 6230R CPU @ 2.10GHz (2 x 0)
Memory (System) 7.52GB (1.23GB free)
VM 100%
Extensions (25)
Extension Author (truncated) Version
ccl-tools DSH 0.0.11
vscode-apache mrm 1.2.0
vscode-edge-devtools ms- 2.1.5
jupyter-keymap ms- 1.1.2
remote-containers ms- 0.375.1
remote-ssh ms- 0.112.0
remote-ssh-edit ms- 0.86.0
remote-wsl ms- 0.88.2
vscode-remote-extensionpack ms- 0.25.0
remote-explorer ms- 0.4.3
remote-server ms- 1.5.2
vscode-jsp pth 0.0.3
pdf tom 1.2.2
highlight-matching-tag vin 0.11.0
vscode-intelephense-client bme 1.10.4
vscode-svgviewer css 2.0.0
transformer dak 1.12.1
gitlens eam 15.2.3
gitlab-workflow Git 5.2.0
todo-tree Gru 0.0.226
vscode-dotnet-runtime ms- 2.1.1
vsliveshare ms- 1.0.5936
vscode-xml red 0.27.1
vscode-yaml red 1.15.0
php-debug xde 1.35.0

(1 theme extensions excluded)

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par reproduire dans VS Code l’exemple fourni de jQuery-.on() avec et sans l’indication de type JSDoc @this {HTMLElement}, puis examinez la manière dont TypeScript traite le callback et la surcharge obsolète. La tâche est terminée lorsque l’utilisation valide de .on() n’est plus marquée comme obsolète lorsque l’indication de type est présente, avec un test de régression couvrant les deux exemples.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
javascript, jquery, typescript
Domaine
tooling
Type d'issue
Bug
Difficulté
3/5
Temps estimé
1-2 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.