diff --git a/.changelog/current/2682-fix-typescript.md b/.changelog/current/2682-fix-typescript.md
new file mode 100644
index 000000000..e56de39a1
--- /dev/null
+++ b/.changelog/current/2682-fix-typescript.md
@@ -0,0 +1,3 @@
+# Fixed
+
+- Typescript error during building of app frontend
diff --git a/package-lock.json b/package-lock.json
index 27c4329bb..342e382ac 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -14,6 +14,7 @@
"@nextcloud/event-bus": "^3.1.0",
"@nextcloud/moment": "^1.2.2",
"@nextcloud/router": "^3.0.1",
+ "@nextcloud/typings": "^1.9.1",
"@nextcloud/vue": "^8.3.0",
"caret-pos": "^2.0.0",
"fuse.js": "^7.0.0",
diff --git a/package.json b/package.json
index 9edf56711..04755abf6 100644
--- a/package.json
+++ b/package.json
@@ -35,6 +35,7 @@
"@nextcloud/event-bus": "^3.1.0",
"@nextcloud/moment": "^1.2.2",
"@nextcloud/router": "^3.0.1",
+ "@nextcloud/typings": "^1.9.1",
"@nextcloud/vue": "^8.3.0",
"caret-pos": "^2.0.0",
"fuse.js": "^7.0.0",
diff --git a/src/guest.ts b/src/guest.ts
index 75dbcf265..7ce32a605 100644
--- a/src/guest.ts
+++ b/src/guest.ts
@@ -5,6 +5,8 @@
* @license AGPL3 or later
*/
+///
+
import Vue from 'vue';
import { useStore } from './store';
@@ -14,7 +16,12 @@ import AppInvalidGuest from './components/AppInvalidGuest.vue';
declare global {
interface Window {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
- OC: any;
+ OC:
+ | Nextcloud.v16.OC
+ | Nextcloud.v17.OC
+ | Nextcloud.v18.OC
+ | Nextcloud.v19.OC
+ | Nextcloud.v20.OC;
n: string;
t: string;
}
diff --git a/src/main.ts b/src/main.ts
index d377bd4f2..b5f9ba056 100644
--- a/src/main.ts
+++ b/src/main.ts
@@ -5,6 +5,8 @@
* @license AGPL3 or later
*/
+///
+
// Markdown
import VueShowdown from 'vue-showdown';
@@ -24,7 +26,12 @@ import AppMain from './components/AppMain.vue';
declare global {
interface Window {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
- OC: any;
+ OC:
+ | Nextcloud.v16.OC
+ | Nextcloud.v17.OC
+ | Nextcloud.v18.OC
+ | Nextcloud.v19.OC
+ | Nextcloud.v20.OC;
n: string;
t: string;
escapeHTML(text: string): string;