Comparison operators ("<", ">") incorrectly interpreted as type parameters
還沒有人認領這個 Issue。
評估
- 難度
- 3/5
- 預估耗時
- 1-2 天
- 新手友好度
- 48/100
- Issue 類型
- 缺陷
- 描述清晰度
- 基本清楚
- 活躍度
- 停滯
- 技術堆疊
- typescript
- 領域
- tooling
研究方向
從 TypeScript and JavaScript Grammar Extension 開始,使用 issue 中顯示的語法範圍,在 VS Code 中重現所回報的程式片段。追蹤比較運算子在語法中的分類方式;當 \u003c 和 \u003e 維持為比較運算子,同時周圍的型別斷言和屬性存取獲得正常醒目提示時,即表示完成。
由索引模型根據 Issue 內容生成。
描述
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:

Actual code:

- 主要語言
- TypeScript
- 星號
- 471
- 分支
- 152
- PR 合併指標
- 30 天內沒有已合併 PR
環境準備
這個專案沒有提供開發容器、Dockerfile 或貢獻指南,環境需要你自己搭建:先看它的 README,通用步驟見我們的新手貢獻指南。
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
microsoft/TypeScript-TmLanguage 的其他 Issue
-
難度 2/5 1-3 小時 新手友好度 72/100
microsoft/TypeScript-TmLanguage#1071 ·
-
Type after `as` or `satisfies` at end of line is tokenized as an expression可能已有人在做 @TomerAberbach 於 21 天前認領。 未關閉
難度 4/5 3-5 天 新手友好度 68/100
microsoft/TypeScript-TmLanguage#1079 ·
-
triste未關閉
難度 5/5 一週以上 新手友好度 5/100
microsoft/TypeScript-TmLanguage#1078 ·
-
TextMate tokenizer enters incorrect scope after typeof a < "u" in JavaScript, affecting subsequent function declarations可能重新可做 @mohityadav8 於 126 天前認領,目前沒有進行中的 PR。 未關閉
難度 3/5 1-2 天 新手友好度 68/100
microsoft/TypeScript-TmLanguage#1076 · 6 則留言 ·
-
難度 2/5 1-3 小時 新手友好度 55/100
microsoft/TypeScript-TmLanguage#1074 · 2 則留言 ·
查看 microsoft/TypeScript-TmLanguage 的全部 Issue
相似的 Issue
-
難度 2/5 1-3 小時 新手友好度 86/100
維護者通常 1 天內回覆
-
難度 1/5 1 小時以內 新手友好度 90/100
chrisparsons83/flexspotff#215 ·
維護者通常 1 天內回覆
-
難度 2/5 1-3 小時 新手友好度 78/100
維護者通常 1 天內回覆
-
難度 2/5 1-3 小時 新手友好度 82/100
vitest-dev/vitest#11633 · 1 則留言 ·
維護者通常 1 天內回覆
-
難度 2/5 1-3 小時 新手友好度 65/100
維護者通常 1 天內回覆