Печатный текст отсутствует определение типа расширенного интерфейса - PullRequest
0 голосов
/ 24 марта 2020

Я создаю проект nuxt с пакетом @ nuxtjs / apollo и машинописью. Я хочу добавить конфигурацию apollo в мой nuxt.config.ts, но он не показывает все доступные свойства.

Конфигурация должна иметь возможность иметь эти параметры, но она говорит: "'wsEndpoint' делает не существует в типе 'ApolloClientConfig' ":

import { Configuration } from '@nuxt/types';

const configuration: Configuration = {
  apollo: {
    clientConfigs: {
      default: {
        httpEndpoint: process.env.VUE_APP_ALERTS_COMMENTS_API_HTTP_URL,
        wsEndpoint: process.env.VUE_APP_ALERTS_COMMENTS_API_WS_URL,
        websocketsOnly: false,
      }
    }
  }
}

Это мой tsconfig. json:

{
  "compilerOptions": {
    "experimentalDecorators": true,
    "target": "es2018",
    "module": "esnext",
    "moduleResolution": "node",
    "lib": [
      "esnext",
      "esnext.asynciterable",
      "dom"
    ],
    "esModuleInterop": true,
    "allowJs": true,
    "sourceMap": true,
    "strict": true,
    "noEmit": true,
    "baseUrl": ".",
    "paths": {
      "~/*": [
        "./*"
      ],
      "@/*": [
        "./*"
      ]
    },
    "types": [
      "@types/node",
      "@nuxt/types",
      "@nuxtjs/apollo/types/nuxt.d.ts",
      "vue-cli-plugin-apollo",
      "@types/jest",
      "vue-toasted/types",
      "vue-i18n/types"
    ]
  },
  "exclude": [
    "node_modules",
    "e2e",
    "./env.config.ts"
  ],
  "files": [
    "custom.d.ts"
  ]
}

Я провел некоторые исследования по типам:

  1. vue -cli-plugin-apollo содержит отсутствующие типы
  2. Мне пришлось импортировать "@ nuxtjs / apollo / types / nuxt.d.ts", а не его index.d.ts потому что в противном случае у меня вообще не было типов для apollo (хотя index.d.ts импортирует nuxt.d.ts)
  3. nuxt.d.ts имеет интерфейс «ApolloClientConfig», который расширяет интерфейс «ApolloClientClientConfig» из пакета "vue -cli-plugin-apollo". Автозаполнение работает для свойств "ApolloClientConfig", но отсутствуют значения из "ApolloClientClientConfig".

Я также попытался заменить "vue -cli-plugin-apollo" в tsconfig. json с: "vue -cli-plugin-apollo / types.d.ts" без разницы в результате.

Вот nuxt.d.ts и types.d.ts из "vue -cli-plugin-apollo" .

Вот соответствующая часть моего пакета. json

{
...
  "dependencies": {
    ...
    "@nuxtjs/apollo": "^4.0.0-rc19",
    "nuxt": "^2.0.0",
    ...
  },
  "devDependencies": {
    ...
    "vue-cli-plugin-apollo": "^0.21.3",
    ...
  },
...
}
...