microsoft / microsoft/TypeScript

Enum keys not accepted as computed properties if their name is not a valid identifier

Aperta
#25,083 5 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Bug Domain: enum Good First Issue
Lingua principale
Go
Stelle
111k
Fork
14.3k
Merge medio
2g 4h
PR unite (30g)
132

Descrizione

TypeScript Version: 2.9.2

Search Terms: computed property name

Code

enum Type {
  Foo = 'foo',
  '3x14' = '3x14'
}

type TypeMap = {
  [Type.Foo]: any
  [Type['3x14']]: any
}

Expected behavior:
Type['3x14'] to be usable as a computed key in a type definition.

Actual behavior:
A computed property name in a type literal must refer to an expression whose type is a literal type or a 'unique symbol' type.

This is the case even for Type.Foo if it's written as Type['Foo'] instead; so it seems there is some early bailout when the bracket operator is involved. For certain key names it may not be possible to write them without resorting to brackets, like a name that starts with a digit.

Playground Link: Link

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Riproduci l'esempio di TypeScript 2.9.2 nel Playground collegato, quindi confronta la forma accettata [Type.Foo] con la forma rifiutata [Type['3x14']]. Traccia il controllo dei nomi di proprietà calcolati per l'accesso ai membri di un enum e conferma che l'accesso tramite parentesi quadre a un membro di enum che non è un identificatore venga accettato come tipo letterale.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
typescript
Ambito
compilers
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Attiva
Chiarezza
Abbastanza chiara
Idoneità per principianti
55/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.