Inferred Promise type breaks ordering of completions
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 45/100
- issue の種類
- バグ
- 明瞭さ
- おおむね明確
- 活発さ
- 停滞
- 技術スタック
- typescript
- 領域
- devtools
調査の方向性
まず、リンクされた TypeScript Playground の再現コードを実行し、good と bad([]) の補完を比較します。Promise サブタイプとジェネリック推論の補完動作を追跡します。両方の場合で、含まれる値から追加されたプロパティより前に foo と Promise のメソッドが表示されれば完了です。
索引モデルが issue の本文から書いたものです。
説明
🔎 Search Terms
promise, generic, completion, inference
🕗 Version & Regression Information
- This is the behavior in every version I tried, and I reviewed the FAQ for entries about promise/completions (found nothing)
⏯ Playground Link
💻 Code
interface Foo<T> extends Promise<T> {
// This should show up first along with catch, then, finally, etc.
foo(): null;
}
let good: Foo<[]>;
async () => {
// In VS Code, try typing:
//
// good.
}
function bad<T>(x: T): Foo<T> {
return null as any;
}
async () => {
// In VS Code, try typing:
//
// bad([]).
}
🙁 Actual behavior
If a generic is used to infer the type contained in the Promise, then the completions ordering is lost.
This is the correct ordering, foo shows up towards the top:
But if the function returning the Promise subclass is used, the ordering is lost:
🙂 Expected behavior
The methods declared on the Promise and its subclasses / subinterfaces should show up before the "after adding await" properties of whatever is contained in the Promise.
Additional information about the issue
I'd be willing to work on fixing this with some guidance, if it's feasible.
- 主要言語
- Go
- スター
- 111k
- フォーク
- 14.4k
- 平均マージ
- 1日 15時間
- マージ済み PR(30日)
- 106
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
microsoft/TypeScript のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
microsoft/TypeScript#64322 · コメント 2 件 · リアクション 1 件 · 担当者 2 名 ·
-
Possible Improvement
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
microsoft/TypeScript#64278 · コメント 1 件 · リアクション 1 件 ·
-
Docs
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
microsoft/TypeScript#64118 · コメント 1 件 ·
-
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
microsoft/TypeScript#64094 ·
-
Docs
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
microsoft/TypeScript#63959 · コメント 5 件 ·
microsoft/TypeScript の issue をすべて見る
似ている issue
-
Type/Bug
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
OpenNSW/nsw-srilanka#497 ·
-
難易度 1/5 1時間未満 初心者へのやさしさ 92/100
milvus-io/birdwatcher#545 ·
-
kind/bug
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
kubernetes-sigs/prow#953 · コメント 1 件 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
caddyserver/caddy#8046 ·