Как использовать в проекте, который настроен с использованием Vue CLI@3 и TypeScript?

td;dr Как включить vue-apollo в проект, который уже использует TypeScript?

Я создал новый проект vue, используя vue cli@3 и используя TS.

Затем я добавил vue-apollo плагин, который изменил мой файл main.ts, чтобы добавить

apolloProvider: createProvider(),

в создании экземпляра vue.

Но компилятор жалуется на это.

Аргумент типа '{router: VueRouter; store: Store <{}>; apolloProvider: {предоставить: () => {}; }; render: (h: CreateElement) => VNode; }'нельзя назначить параметру типа'ComponentOptions, DefaultMethods, DefaultComputed, PropsDefinition>, Record>'.

Объектный литерал может указывать только известные свойства, и "apolloProvider" не существует в типе "ComponentOptions, DefaultMethods, DefaultComputed, PropsDefinition>, Record>". [2345]

Я вижу, что в пакете vue-apollo есть каталог типов, который я извлек из npm, но не знаю, как их использовать.

Я также получаю следующее

[ts] Не удалось найти файл объявления для модуля '@/vue-apollo'. '/Users/praveen/code/voicezen/repos/voicezen-ui/src/vue-apollo.js' неявно имеет тип 'any'. [7016]

для следующего импорта в main.ts

import { createProvider } from '@/vue-apollo';

Я понимаю, что это может исходить от noImplicitAny правило, но затем изменение сгенерированного vue-apollo.js на vue-apollo.ts также не решает проблемы.

Меняя его на .ts удаляет ошибки компилятора из main.ts о двух вышеупомянутых, но затем я получаю следующее.

Не удалось найти файл объявления для модуля 'vue-cli-plugin-apollo / graphql-client'. "/Users/praveen/code/voicezen/repos/voicezen-ui/node_modules/vue-cli-plugin-apollo/graphql-client/index.js" неявно имеет тип "любой".

за

import {
  createApolloClient,
  restartWebsockets
} from 'vue-cli-plugin-apollo/graphql-client';

Чтобы это исправить, я могу добавить объявление модуля в мои наборы, как это, но это правильный путь?

declare module 'vue-cli-plugin-apollo/graphql-client';

onLogin или же onLogout метод парам apolloClient в сгенерированном vue-apollo.ts начинает жаловаться на то, что они неявно any типа тоже.

0 ответов

Вы были на правильном пути, измените vue-apollo.js к .ts

А затем добавьте vue-cli-plugin-apollo к типам в tsconfig.

Другие вопросы по тегам