Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Comparison operators ("<", ">") incorrectly interpreted as type parameters

Aperta
#859 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

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

Direzione di ricerca

Inizia con la TypeScript and JavaScript Grammar Extension e riproduci lo snippet segnalato in VS Code usando gli scope di sintassi mostrati nell’issue. Traccia il modo in cui gli operatori di confronto vengono classificati nella grammatica; il lavoro è completato quando \u003c e \u003e rimangono operatori di confronto, mentre l’asserzione di tipo circostante e l’accesso alla proprietà ricevono l’evidenziazione normale.

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

Descrizione

TS and JS Grammar Extension version: 0.0.55 / latest

Code

// Contrived because of simplification
let a = 7
let b = {}
if (a < (b as {c: number}).c || a > (b as {c: number}).c) {

}

If statement parsing:

if [keyword.control.conditional.ts, source.ts]
( [meta.brace.round.ts, source.ts]
a [entity.name.function.ts, meta.function-call.ts, source.ts]
< [punctuation.definition.typeparameters.begin.ts, meta.type.parameters.ts, source.ts]
( [meta.brace.round.ts, meta.type.paren.cover.ts, meta.type.parameters.ts, source.ts]
b [entity.name.type.ts, meta.type.paren.cover.ts, meta.type.parameters.ts, source.ts]
as [entity.name.type.ts, meta.type.paren.cover.ts, meta.type.parameters.ts, source.ts]
{ [punctuation.definition.block.ts, meta.object.type.ts, meta.type.paren.cover.ts, meta.type.parameters.ts, source.ts]
c [variable.object.property.ts, meta.definition.property.ts, meta.field.declaration.ts, meta.object.type.ts, meta.type.paren.cover.ts, meta.type.parameters.ts, source.ts]
: [meta.type.annotation.ts, meta.field.declaration.ts, meta.object.type.ts, meta.type.paren.cover.ts, meta.type.parameters.ts, source.ts]
number [support.type.primitive.ts, meta.type.annotation.ts, meta.field.declaration.ts, meta.object.type.ts, meta.type.paren.cover.ts, meta.type.parameters.ts, source.ts]
} [punctuation.definition.block.ts, meta.object.type.ts, meta.type.paren.cover.ts, meta.type.parameters.ts, source.ts]
) [meta.brace.round.ts, meta.type.paren.cover.ts, meta.type.parameters.ts, source.ts]
. [meta.type.parameters.ts, source.ts]
c [entity.name.type.ts, meta.type.parameters.ts, source.ts]
| [keyword.operator.type.ts, meta.type.parameters.ts, source.ts]
| [keyword.operator.type.ts, meta.type.parameters.ts, source.ts]
a [entity.name.type.ts, meta.type.parameters.ts, source.ts]
> [punctuation.definition.typeparameters.begin.ts, meta.type.parameters.ts, source.ts]

(rest is normal)

So like:
if ( a<type>(parameters).c ) {}

Example in vscode:
image

Actual code:
image

Lingua principale
TypeScript
Stelle
471
Fork
149
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

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.

Altre issue di microsoft/TypeScript-TmLanguage

Tutte le issue di microsoft/TypeScript-TmLanguage

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.