You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Use AuthTokenSection in App (fails with two kinds of TS errors)
* package.json: add Nextcloud dependencies (from Nextcloud)
* main.ts: register pinia
Otherwise the following error would be thrown:
TypeError: Cannot read properties of undefined (reading '_s')
at i (pinia.mjs:1714:20)
at setup (AuthTokenList.vue:11:32)
at mn (vue.runtime.esm.js:3033:30)
at vue.runtime.esm.js:2457:27
...
* remove .ts suffix from import paths (causes build error otherwise)
* add declare global to define Nextcloud types. This should be changed
to @nextcloud/typings.
* annotated import of Nextcloud components (JS) with @ts-expect-error
to solve tsc errors. This is most likely due to missing type
definitions. Unclear how Nextcloud core made this working.
* the eslint rule set @nextcloud/eslint-config/typescript was added to
prevent import path errors
The build fails with errors like
ERROR in /app/src/components/AuthTokenSetup.vue.ts
47:9-14
[tsl] ERROR in /app/src/components/AuthTokenSetup.vue.ts(47,10)
TS2339: Property 'reset' does not exist on type 'CreateComponentPublicInstance<{}, { authTokenStore: Store<"auth-token", { tokens: IToken[]; }, {}, { updateToken(token: IToken): Promise<any>; addToken(name: string): Promise<ITokenResponse | null>; deleteToken(token: IToken): Promise<...>; wipeToken(token: IToken): Promise<...>; renameToken(token: IToken, newName: ...'.
This hints at Typescript not being able to infer types from the
component definition.
Related issues:
* vuejs/vue#9873
* vuejs/vue#12628
* vuejs/vue#8721
Unsuccessfully attempted proposed solutions:
* Declaring return types on methods like:
reset(): void {
async submit(): Promise<void> {
* Using arrow functions
Did not work and would introduce new errors anyway
* Defining interfaces for the returned component
Caused another rabbit hole of more and more required type
definitions, that should be infered by the Vue typings anyway
Signed-off-by: Thomas Lehmann <[email protected]>
0 commit comments