microsoft / microsoft/TypeScript
Method use showing as deprecated when callback function includes type hint
まだ誰も着手していません。
- 主要言語
- Go
- スター
- 111k
- フォーク
- 14.4k
- 平均マージ
- 1日 19時間
- マージ済み PR(30日)
- 117
説明
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)
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
まず、JSDoc の型ヒント @this {HTMLElement} を付けた場合と付けない場合の、提供されている jQuery-.on() の例を VS Code で再現し、その後 TypeScript が callback と非推奨のオーバーロードをどのように処理するかを追跡します。型ヒントがある場合に有効な .on() の使用が非推奨としてマークされなくなり、両方の例をカバーする回帰テストが追加されていれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- javascript, jquery, typescript
- 領域
- tooling
- issue の種類
- バグ
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 35/100