Tokenising failure on parenthesis-wrapped object literal's type assertion operators `as keyof typeof`

Offen
#995 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Anfängerfreundlichkeit
35/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
typescript
Bereich
tooling

Rechercherichtung

Beginne damit, die TypeScript-TextMate-Grammatikdateien des Repositorys zu untersuchen, und reproduziere die bereitgestellten Beispiele im relevanten Editor-Syntax-Highlighter. Vergleiche die Hervorhebung von as keyof typeof im Objektliteral mit Klammern mit den anderen Beispielen; abgeschlossen ist die Aufgabe, wenn diese Operatoren Keyword-Scopes statt variable.parameter.ts oder des entsprechenden TSX-Scopes erhalten.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

JavaScript and TypeScript Nightly version: 5.3.0-dev.20231015

Code

This is the minimal and possible code for compare and constrast.
The example might not cover all posibilities that leads to this issue.

type A = { a: "", b: "" }
const a = { a: "", b: "" }

const c = ({
    key: a.a, label: a.b[a.a as keyof typeof a.b]
})

const d = (
    {
        key: a.a, label: a.b[a.a as keyof typeof a.b]
    })

const e =
    { key: a.a, label: a.b[a.a as keyof typeof a.b] }

const f =
{
    key: a.a, label: a.b[a.a as keyof typeof a.b]
}

When the object literal is going to be written like d, the inner operator as keyof typeof is tokenised as variable.parameter.ts or (tsx), but not keyword.*.

image

Vorherrschende Sprache
TypeScript
Sterne
471
Forks
149
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus microsoft/TypeScript-TmLanguage

Alle Issues in microsoft/TypeScript-TmLanguage

Ähnliche Issues

Weitere Issues zu TypeScript

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.