vue-class-component mixins провоцирует ошибку в WebStorm? - PullRequest
0 голосов
/ 30 апреля 2018

Я работаю над проектом, используя vue-js и TypeScript. Поэтому я даю vue-class-component попытку.

Я пытаюсь закодировать миксин, он хорошо работает в VSC и VS, но кажется, что WebStorm не очень доволен моим кодом.

Вот миксин:

import Vue from 'vue'
import {StoreOptions} from 'vuex'
import Component from "vue-class-component";

@Component
export default class Container extends Vue {
  registerStoreModule(key: string, module: StoreOptions<any>): void {
    if (!this.$store.state[key]) {
      this.$store.registerModule(key, module);
    }
  }
}

А вот компонент, использующий этот миксин:

  @Component({
    components: { UserCard },
    computed: mapGetters({ user: `${STORE_KEY}/user` })
  })
  export default class UserContainer extends mixins(Container) {
    user: UserState;

    created() {
      this.registerStoreModule(STORE_KEY, store)
    }

    mounted() {
      this.$store.dispatch(`${STORE_KEY}/getUser`);
    }
  }

Согласно vue-class-component , это должно работать. Дело в том, что WebStorm не может проверить типы TypeScript.

ws bug?

Есть 2 ошибки:

  • Типы аргументов не соответствуют параметрам
  • Все базовые конструкторы должны иметь одинаковый тип возврата

Код хорошо компилируется, и другие IDE не распознают эти ошибки. Я пробовал с разными версиями TS, в настоящее время я использую 2.8.3. Visual Studio Code использует ту же версию, что и WebStorm.

РЕДАКТИРОВАТЬ: Вот мой tsconfig.json, это может быть полезно:)

{
  "compilerOptions": {
    "target": "esnext",
    "module": "esnext",
    "strict": true,
    "jsx": "preserve",
    "moduleResolution": "node",
    "allowSyntheticDefaultImports": true,
    "experimentalDecorators": true,
    "sourceMap": true,
    "baseUrl": ".",
    "types": [
      "node",
      "mocha",
      "chai"
    ],
    "paths": {
      "@/*": [
        "src/*"
      ]
    }
  },
  "include": [
    "src/**/*.ts",
    "src/**/*.vue",
    "tests/**/*.ts"
  ],
  "exclude": [
    "node_modules"
  ]
}

1 Ответ

0 голосов
/ 30 апреля 2018

Известная проблема, пожалуйста, следуйте WEB-31543 для получения обновлений

...