Prepare for TypeScript 5

Release-Notes: skip
Change-Id: Id68e1c846f7648e064cd1c6c6470365df9682268
diff --git a/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata_test.ts b/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata_test.ts
index e0e1364..93ef3e3 100644
--- a/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata_test.ts
+++ b/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata_test.ts
@@ -473,7 +473,7 @@
     });
 
     test('Push Certificate Validation test BAD', () => {
-      change!.revisions.rev1!.push_certificate = {
+      change!.revisions.rev1.push_certificate = {
         certificate: 'Push certificate',
         key: {
           status: GpgKeyInfoStatus.BAD,
@@ -493,7 +493,7 @@
     });
 
     test('Push Certificate Validation test TRUSTED', () => {
-      change!.revisions.rev1!.push_certificate = {
+      change!.revisions.rev1.push_certificate = {
         certificate: 'Push certificate',
         key: {
           status: GpgKeyInfoStatus.TRUSTED,
@@ -531,7 +531,7 @@
     });
 
     test('isEnabledSignedPushOnRepo', () => {
-      change!.revisions.rev1!.push_certificate = {
+      change!.revisions.rev1.push_certificate = {
         certificate: 'Push certificate',
         key: {
           status: GpgKeyInfoStatus.TRUSTED,
diff --git a/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list.ts b/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list.ts
index d5da9c9..3c2b792 100644
--- a/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list.ts
+++ b/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list.ts
@@ -21,14 +21,14 @@
   PatchSetNum,
   VotingRangeInfo,
   isRobot,
-  EDIT,
-  PARENT,
+  PatchSetNumber,
 } from '../../../types/common';
 import {GrMessage, MessageAnchorTapDetail} from '../gr-message/gr-message';
 import {getVotingRange} from '../../../utils/label-util';
 import {
   FormattedReviewerUpdateInfo,
   ParsedChangeInfo,
+  isPatchSetNumber,
 } from '../../../types/types';
 import {commentsModelToken} from '../../../models/comments/comments-model';
 import {changeModelToken} from '../../../models/change/change-model';
@@ -157,27 +157,17 @@
   message: CombinedMessage,
   allMessages: CombinedMessage[]
 ): PatchSetNum | undefined {
-  if (
-    message._revision_number !== undefined &&
-    message._revision_number !== 0 &&
-    message._revision_number !== PARENT &&
-    message._revision_number !== EDIT
-  ) {
+  if (isPatchSetNumber(message._revision_number)) {
     return message._revision_number;
   }
-  let revision: PatchSetNum = 0 as PatchSetNum;
+  let revision: PatchSetNumber | undefined = undefined;
   for (const m of allMessages) {
     if (m.date > message.date) break;
-    if (
-      m._revision_number !== undefined &&
-      m._revision_number !== 0 &&
-      m._revision_number !== PARENT &&
-      m._revision_number !== EDIT
-    ) {
+    if (isPatchSetNumber(m._revision_number)) {
       revision = m._revision_number;
     }
   }
-  return revision > 0 ? revision : undefined;
+  return revision;
 }
 
 /**
diff --git a/polygerrit-ui/app/elements/shared/gr-js-api-interface/gr-change-actions-js-api_test.ts b/polygerrit-ui/app/elements/shared/gr-js-api-interface/gr-change-actions-js-api_test.ts
index 4977ec5..70e653a 100644
--- a/polygerrit-ui/app/elements/shared/gr-js-api-interface/gr-change-actions-js-api_test.ts
+++ b/polygerrit-ui/app/elements/shared/gr-js-api-interface/gr-change-actions-js-api_test.ts
@@ -10,6 +10,7 @@
 import {fixture, html, assert} from '@open-wc/testing';
 import {PluginApi} from '../../../api/plugin';
 import {
+  ActionPriority,
   ActionType,
   ChangeActionsPluginApi,
   PrimaryActionKey,
@@ -169,7 +170,11 @@
       let buttons = queryAll<GrButton>(element, '[data-action-key]');
       assert.equal(buttons[0].getAttribute('data-action-key'), key1);
       assert.equal(buttons[1].getAttribute('data-action-key'), key2);
-      changeActions.setActionPriority(ActionType.REVISION, key1, 10);
+      changeActions.setActionPriority(
+        ActionType.REVISION,
+        key1,
+        ActionPriority.PRIMARY
+      );
       await element.updateComplete;
       buttons = queryAll<GrButton>(element, '[data-action-key]');
       assert.equal(buttons[0].getAttribute('data-action-key'), key2);
diff --git a/polygerrit-ui/app/test/common-test-setup.ts b/polygerrit-ui/app/test/common-test-setup.ts
index 365bb16..ed472cc 100644
--- a/polygerrit-ui/app/test/common-test-setup.ts
+++ b/polygerrit-ui/app/test/common-test-setup.ts
@@ -37,7 +37,7 @@
   Provider,
 } from '../models/dependency';
 import * as sinon from 'sinon';
-import '../styles/themes/app-theme.ts';
+import '../styles/themes/app-theme';
 import {Creator} from '../services/app-context-init';
 import {pluginLoaderToken} from '../elements/shared/gr-js-api-interface/gr-plugin-loader';
 
diff --git a/polygerrit-ui/app/types/types.ts b/polygerrit-ui/app/types/types.ts
index 6517836..40474e9 100644
--- a/polygerrit-ui/app/types/types.ts
+++ b/polygerrit-ui/app/types/types.ts
@@ -12,8 +12,10 @@
   CommitInfo,
   EditPatchSet,
   PatchSetNum,
+  PatchSetNumber,
   ReviewerUpdateInfo,
   RevisionInfo,
+  RevisionPatchSetNum,
   Timestamp,
 } from './common';
 
@@ -89,6 +91,17 @@
   return !!(x as PatchSetFile).path;
 }
 
+export function isPatchSetNumber(
+  x?:
+    | PatchSetNum
+    | PatchSetNumber
+    | RevisionPatchSetNum
+    | BasePatchSetNum
+    | null
+): x is PatchSetNumber {
+  return !!x && Number.isInteger(x) && (x as number) > 0;
+}
+
 export interface FileRange {
   basePath?: string;
   path: string;