microsoft / microsoft/TypeScript
Method use showing as deprecated when callback function includes type hint
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 111k
- Forks
- 14.4k
- Avg merge
- 1d 19h
- Merged PRs (30d)
- 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();
});
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();
});
Below is what the hover shows for the deprecation:
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 |
| 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)
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the provided jQuery .on() example in VS Code with and without the JSDoc @this {HTMLElement} type hint, then trace how TypeScript handles the callback and deprecated overload. Done means the valid .on() usage is no longer marked deprecated when the type hint is present, with a regression test covering both examples.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, jquery, typescript
- Domain
- tooling
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100