Vue + Typescript - недопустимые типы - PullRequest
0 голосов
/ 29 мая 2018

Использование машинописного текста 2.8.3, ts-loader 3.5.0 (из-за использования webpack 2) и vue 2.5.16 Я получаю сообщение об ошибке при попытке определить компоненты в SFC следующим образом:

<script lang="ts">
  import Vue from 'vue'

  export default Vue.extend({
     name: 'TestComponent',

     props: {
       options: {
          type: Array,
          default: () => [],
       }
     },

     computed: {
       getOptions() {
          return this.options
       },
     }
  })
</script>

Вот ошибка:

TS2339: свойство 'options' не существует для типа 'ComponentOptions, DefaultMethods, DefaultComputed, PropsDefinition

Вот tsconfig.json:

{
  "compilerOptions": {
    "target": "es5",
    "module": "esnext",
    "strict": true,
    "jsx": "preserve",
    "moduleResolution": "node",
    "allowSyntheticDefaultImports": true,
    "sourceMap": true,
    "noImplicitAny": false,
    "baseUrl": ".",
    "allowJs": true,
    "paths": {
      "test/*": ["test/*"]
    },
    "lib": ["dom", "es2016"],
    "types": ["node", "jest"]
  },
  "include": ["resources/assets/js/**/*.ts", "resources/assets/js/**/*.vue"],
  "exclude": ["node_modules"]
}

Есть идеи?Работает нормально, если я установил noImplicityThis: false, но автозаполнение на VSCode неверно.

1 Ответ

0 голосов
/ 30 мая 2018

Как-то начал работать.Изменил tsconfig.json на следующее:

{
  "compilerOptions": {
    "target": "es5",
    "module": "esnext",
    "strict": true,
    "noUnusedLocals": true,
    "noUnusedParameters": true,
    "noImplicitAny": false,
    "jsx": "preserve",
    "moduleResolution": "node",
    "allowSyntheticDefaultImports": true,
    "sourceMap": true,
    "baseUrl": ".",
    "allowJs": true,
    "lib": ["dom", "esnext"],
    "types": ["node", "jest"]
  },
  "include": ["resources/assets/js/**/*.ts", "resources/assets/js/**/*.vue"],
  "exclude": ["node_modules"]
}

И vue.d.ts на:

declare module '*.vue' {
  import Vue from 'vue'
  export default Vue
}

Может быть, это кому-нибудь пригодится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...