microsoft / microsoft/TypeScript-TmLanguage
Tokenising failure on parenthesis-wrapped object literal's type assertion operators `as keyof typeof`
Personne n'a encore pris cette issue.
- Langage dominant
- TypeScript
- Étoiles
- 471
- Forks
- 149
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
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.*.
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par inspecter les fichiers de grammaire TypeScript TextMate du dépôt et reproduisez les exemples fournis dans le surligneur de syntaxe de l’éditeur concerné. Comparez la coloration de as keyof typeof dans le littéral d’objet entouré de parenthèses avec celle des autres exemples ; c’est terminé lorsque ces opérateurs reçoivent des scopes de mot-clé plutôt que variable.parameter.ts ou l’équivalent TSX.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- typescript
- Domaine
- tooling
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100