microsoft / microsoft/TypeScript
Incorrect report of self-referencing type for static fields
- 主要言語
- Go
- スター
- 111k
- フォーク
- 14.3k
- 平均マージ
- 2日 4時間
- マージ済み PR(30日)
- 132
説明
### 🔎 Search Terms
TS7022
implicitly has type 'any'
### 🕗 Version & Regression Information
- The issue applies to all TypeScript 5 versions and TypeScript 6 nightly
### ⏯ Playground Link
https://www.typescriptlang.org/play/?ts=6.0.0-dev.20251006#code/GYVwdgxgLglg9mABDAJgHgCoD4AUAPALkQwEoiNEBvAKEUQCcBTKEepPagX2uogQGcoiAGJw4iALzIUOCABsAhv35VaiQQtgQGjBSgRyAnomBjJ0nABYATCUQB6e4gCi9enHrEAygHYADNbWXCQ8fGCCiADyANbm8koqNHQaWjp6Bsam4lKoVrYOTgBy4oxuHlzUQA
### 💻 Code
```ts
function id(x: T): T {
return x
}
const Foo = id(class {
static readonly foo = id(42) // Error TS7022
})
const Ok = class {
static readonly foo = id(42) // No error
}
```
### 🙁 Actual behavior
Type error TS7022 reported
### 🙂 Expected behavior
No type error
### Additional information about the issue
_No response_
コントリビューションガイド
調査の方向性
リンクされている TypeScript Playground から始め、2 つのクラス例を使って TS7022 診断を再現します。自己参照する static フィールドと、それに相当する単独のクラスの間で診断の挙動を比較し、その後、コンパイラーの型推論と診断パスを追跡します。報告された例が TS7022 を生成しなくなり、関連するエラーの挙動が維持されれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- typescript
- 領域
- compilers
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 42/100