diff --git a/TypeScript.YAML-tmLanguage b/TypeScript.YAML-tmLanguage
index 36fa554..8b09f74 100644
--- a/TypeScript.YAML-tmLanguage
+++ b/TypeScript.YAML-tmLanguage
@@ -1744,7 +1744,8 @@ repository:
match: '{{startOfIdentifier}}instanceof{{endOfIdentifier}}'
- name: keyword.operator.new.ts
match: '{{startOfIdentifier}}new{{endOfIdentifier}}'
- - include: '#typeof-operator'
+ - name: keyword.operator.typeof.ts
+ match: '{{startOfIdentifier}}typeof{{endOfIdentifier}}'
- name: keyword.operator.expression.void.ts
match: '{{startOfIdentifier}}void{{endOfIdentifier}}'
#handle as operator specifically to be recognized only if it is 'as' followed by space
diff --git a/TypeScript.tmLanguage b/TypeScript.tmLanguage
index 4d91f6a..19ff7be 100644
--- a/TypeScript.tmLanguage
+++ b/TypeScript.tmLanguage
@@ -5670,8 +5670,10 @@
(?<![_$[:alnum:]])(?:(?<=\.\.\.)|(?<!\.))new(?![_$[:alnum:]])(?:(?=\.\.\.)|(?!\.))
- include
- #typeof-operator
+ name
+ keyword.operator.typeof.ts
+ match
+ (?<![_$[:alnum:]])(?:(?<=\.\.\.)|(?<!\.))typeof(?![_$[:alnum:]])(?:(?=\.\.\.)|(?!\.))
name
diff --git a/TypeScriptReact.tmLanguage b/TypeScriptReact.tmLanguage
index a7aec5d..43b5441 100644
--- a/TypeScriptReact.tmLanguage
+++ b/TypeScriptReact.tmLanguage
@@ -5616,8 +5616,10 @@
(?<![_$[:alnum:]])(?:(?<=\.\.\.)|(?<!\.))new(?![_$[:alnum:]])(?:(?=\.\.\.)|(?!\.))
- include
- #typeof-operator
+ name
+ keyword.operator.typeof.tsx
+ match
+ (?<![_$[:alnum:]])(?:(?<=\.\.\.)|(?<!\.))typeof(?![_$[:alnum:]])(?:(?=\.\.\.)|(?!\.))
name
diff --git a/tests/baselines/ArrowFunctionInsideTypeAssertion.baseline.txt b/tests/baselines/ArrowFunctionInsideTypeAssertion.baseline.txt
index 14d4486..7fd20bb 100644
--- a/tests/baselines/ArrowFunctionInsideTypeAssertion.baseline.txt
+++ b/tests/baselines/ArrowFunctionInsideTypeAssertion.baseline.txt
@@ -280,7 +280,7 @@ Grammar: TypeScript.tmLanguage
^
source.ts meta.function.ts meta.block.ts meta.brace.round.ts
^^^^^^
- source.ts meta.function.ts meta.block.ts keyword.operator.expression.typeof.ts
+ source.ts meta.function.ts meta.block.ts keyword.operator.typeof.ts
^
source.ts meta.function.ts meta.block.ts
^
diff --git a/tests/baselines/Issue180.baseline.txt b/tests/baselines/Issue180.baseline.txt
index 61a8d6b..3d6a799 100644
--- a/tests/baselines/Issue180.baseline.txt
+++ b/tests/baselines/Issue180.baseline.txt
@@ -30,7 +30,7 @@ Grammar: TypeScript.tmLanguage
^
source.ts meta.brace.round.ts
^^^^^^
- source.ts keyword.operator.expression.typeof.ts
+ source.ts keyword.operator.typeof.ts
^
source.ts
^^^^^^^^^
diff --git a/tests/baselines/Issue37.baseline.txt b/tests/baselines/Issue37.baseline.txt
index 221be9d..9858240 100644
--- a/tests/baselines/Issue37.baseline.txt
+++ b/tests/baselines/Issue37.baseline.txt
@@ -545,7 +545,7 @@ Grammar: TypeScript.tmLanguage
^
source.ts meta.var.expr.ts
^^^^^^
- source.ts meta.var.expr.ts keyword.operator.expression.typeof.ts
+ source.ts meta.var.expr.ts keyword.operator.typeof.ts
^
source.ts meta.var.expr.ts
^
@@ -696,7 +696,7 @@ Grammar: TypeScript.tmLanguage
^
source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts
^^^^^^
- source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.expression.typeof.ts
+ source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.typeof.ts
^
source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts
^^^^^^
diff --git a/tests/baselines/Issue403IncorrectlyDetectedArrowTypeParameters.baseline.txt b/tests/baselines/Issue403IncorrectlyDetectedArrowTypeParameters.baseline.txt
index 522a8ec..8a90f87 100644
--- a/tests/baselines/Issue403IncorrectlyDetectedArrowTypeParameters.baseline.txt
+++ b/tests/baselines/Issue403IncorrectlyDetectedArrowTypeParameters.baseline.txt
@@ -230,7 +230,7 @@ Grammar: TypeScript.tmLanguage
^
source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts
^^^^^^
- source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts keyword.operator.expression.typeof.ts
+ source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts keyword.operator.typeof.ts
^
source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts
^
diff --git a/tests/baselines/Issue554.baseline.txt b/tests/baselines/Issue554.baseline.txt
index abcc6be..2a5a715 100644
--- a/tests/baselines/Issue554.baseline.txt
+++ b/tests/baselines/Issue554.baseline.txt
@@ -109,7 +109,7 @@ Grammar: TypeScript.tmLanguage
^^^
source.ts keyword.operator.spread.ts
^^^^^^
- source.ts keyword.operator.expression.typeof.ts
+ source.ts keyword.operator.typeof.ts
^
source.ts
^
diff --git a/tests/baselines/Issue858.baseline.txt b/tests/baselines/Issue858.baseline.txt
index e3ad853..fa58e4c 100644
--- a/tests/baselines/Issue858.baseline.txt
+++ b/tests/baselines/Issue858.baseline.txt
@@ -154,7 +154,7 @@ Grammar: TypeScript.tmLanguage
^
source.ts meta.class.ts meta.method.declaration.ts meta.block.ts
^^^^^^
- source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.expression.typeof.ts
+ source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.typeof.ts
^
source.ts meta.class.ts meta.method.declaration.ts meta.block.ts
^^^^^^^^^^^^
diff --git a/tests/baselines/Issue978.baseline.txt b/tests/baselines/Issue978.baseline.txt
new file mode 100644
index 0000000..bac4d85
--- /dev/null
+++ b/tests/baselines/Issue978.baseline.txt
@@ -0,0 +1,48 @@
+original file
+-----------------------------------
+typeof x < ''; function f() {}
+
+-----------------------------------
+
+Grammar: TypeScript.tmLanguage
+-----------------------------------
+>typeof x < ''; function f() {}
+ ^^^^^^
+ source.ts keyword.operator.typeof.ts
+ ^
+ source.ts
+ ^
+ source.ts variable.other.readwrite.ts
+ ^
+ source.ts
+ ^
+ source.ts keyword.operator.relational.ts
+ ^
+ source.ts
+ ^
+ source.ts string.quoted.single.ts punctuation.definition.string.begin.ts
+ ^
+ source.ts string.quoted.single.ts punctuation.definition.string.end.ts
+ ^
+ source.ts punctuation.terminator.statement.ts
+ ^
+ source.ts
+ ^^^^^^^^
+ source.ts meta.function.ts storage.type.function.ts
+ ^
+ source.ts meta.function.ts
+ ^
+ source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts
+ ^
+ source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts
+ ^
+ source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts
+ ^
+ source.ts meta.function.ts
+ ^
+ source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts
+ ^
+ source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts
+>
+ ^
+ source.ts
\ No newline at end of file
diff --git a/tests/baselines/assertions.baseline.txt b/tests/baselines/assertions.baseline.txt
index 944b507..de740a5 100644
--- a/tests/baselines/assertions.baseline.txt
+++ b/tests/baselines/assertions.baseline.txt
@@ -831,7 +831,7 @@ Grammar: TypeScript.tmLanguage
^
source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts
^^^^^^
- source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.expression.typeof.ts
+ source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.typeof.ts
^
source.ts meta.class.ts meta.method.declaration.ts meta.block.ts
^
diff --git a/tests/baselines/javascript.baseline.txt b/tests/baselines/javascript.baseline.txt
index 4119aab..7f40319 100644
--- a/tests/baselines/javascript.baseline.txt
+++ b/tests/baselines/javascript.baseline.txt
@@ -50,7 +50,7 @@ Grammar: TypeScript.tmLanguage
source.ts switch-statement.expr.ts punctuation.definition.block.ts
>typeof x;
^^^^^^
- source.ts keyword.operator.expression.typeof.ts
+ source.ts keyword.operator.typeof.ts
^
source.ts
^
diff --git a/tests/cases/Issue978.ts b/tests/cases/Issue978.ts
new file mode 100644
index 0000000..286bcd6
--- /dev/null
+++ b/tests/cases/Issue978.ts
@@ -0,0 +1 @@
+typeof x < ''; function f() {}