Как использовать в проекте, который настроен с использованием Vue CLI @ 3 и TypeScript? - PullRequest
0 голосов
/ 16 ноября 2018

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' неявно имеет тип 'any'.

для

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.

...