TypeScript говорит мне, что "свойство 'storage' не существует в типе 'typeof client'" при вызове gapi.client.storage.buckets.list()
.
Это в контексте приложения Vue.js (не уверен, что это имеет значение), Я использую библиотеку GAPI.
Я установил пакеты @types/gapi
, @types/gapi.auth2
, @types/gapi.client
и @types/gapi.client.storage
, и TypeScript правильно распознает типы при вызовах, такие как gapi.load()
,gapi.client.init()
или gapi.auth2.getAuthInstance()
.
Однако, независимо от того, что я пробовал, всегда выдается ошибка при моем gapi.client.storage.buckets.list()
вызове:
ERROR in /Users/olance/Dev/project/src/views/Editor.vue(29,38):
29:38 Property 'storage' does not exist on type 'typeof client'.
27 |
28 | async mounted() {
> 29 | this.buckets = await gapi.client.storage.buckets.list({ project: "storage-cloud-editor" });
| ^
30 | }
31 |
Version: typescript 3.5.3
Прямо сейчас, мой tsconfig.json
файл содержит в compilerOptions
следующее:
"typeRoots": [
"node_modules/@types"
],
"types": [
"webpack-env", "vuetify", "gapi", "gapi.auth2", "gapi.client.storage", "gapi.client"
],
По умолчанию он был настроен на "types": ["webpack-env"]
, так что это единственный способ заставить работать все, даже если документация кажетсяпредложить typeRoots
и types
было бы своего рода исключением.
Удаление одного или обоих параметров приводит к сбою компилятора в других частях кода (в основном это относится к vuetify, который не объявляет типы в @types
).
Чего не хватает, чтобы TypeScript знал о gapi.client.storage
определения?