microsoft / microsoft/TypeScript

map through enum

オープン
#28,565 コメント 6 件 リアクション 13 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

Needs Proposal Suggestion
主要言語
Go
スター
111k
フォーク
14.3k
平均マージ
2日 4時間
マージ済み PR(30日)
132

説明

TypeScript Version: 3.1.6

Search Terms: enum

Code

enum ABC {
  A = 'A',
  B = 'B',
  C = 'C',
}
// No Error
for (const key in ABC) {
  console.log(ABC[key]);
}
// Error: Element implicitly has an 'any' type because index expression is not of type 'number'
Object.keys(ABC).map(key => console.log(ABC[key]));

Expected behavior:
Object.keys, values, entries on enum ABC infer type of ABC's key and value.
Actual behavior:
Cannot get inferred type.

Shouldn't type of key from enum be 'A' | 'B' | 'C'?

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

まず、TypeScript 3.1.6 で issue の enum と Object.keys の例を再現し、その後、for-in の場合と Object.keys の場合で推論される型を比較します。Object.keys、values、entries が期待される enum のキー型と値型を、implicit-any エラーなしで提供すれば作業は完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
typescript
領域
compilers
issue の種類
機能追加
難易度
5/5
見積もり時間
1週間以上
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
25/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。