2017年12月19日火曜日

【vue-electron】vue-property-decorator使用時に、エラーコードTS1238が出た時の直し方

【vue-electron】vue-property-decorator使用時に、エラーコードTS1238が出た時の直し方

vue-electronでvue-property-decoratorを使おうとしたところ、webpackでのビルド時に下記エラーが出ました。

ERROR in Index.vue.ts
    [tsl] ERROR in Index.vue.ts(54,1)
          TS1238: Unable to resolve signature of class decorator when called as an expression.
      Type '<VC extends VueClass<Vue>>(target: VC) => VC' is not assignable to type 'typeof CharacterIndex'.
        Property 'extend' is missing in type '<VC extends VueClass<Vue>>(target: VC) => VC'.

このエラーの修正方法の記事です。

コード

<template>
  <div>
    <h1>キャラクター一覧</h1>
  </div>
</template>
<script lang="ts">
  import { Vue, Component, Prop } from 'vue-property-decorator'

  @Component
  export default class CharacterIndex extends Vue {
    @Prop({default: 'character-index'}) name:string
  }
</script>
<style>
</style>

修正方法

tsconfig.jsonに下記を追加してください。

"compilerOptions": {
  "strictFunctionTypes": false
}

strictFunctionTypesに関しては下記記事を参考にしてください。

TypeScript 2.6.1 変更点

0 件のコメント: