2017-11-03 22 views
2

私は少しコンポーネント作成している:私は問題なくプロジェクトをコンパイルすることができますtypescript 2.6.1でvue js @Componentをどのように使用しますか?

import Vue from 'vue'; 
import Component from 'vue-class-component'; 
import { Inject, Model, Prop, Watch } from 'vue-property-decorator'; 

@Component({ 
    template: require('./home.html'), 
}) 
export class HomeComponent extends Vue { 
    name: string = 'User'; 
} 

[email protected]

を使用するが、私は[email protected]使用しようとすると、私はこのエラーを得た:

私はこの問題は、コードのこれらの3行であることを理解./src/components/home/home.ts:8:2

TS2345: Argument of type 'typeof HomeComponent' is not assignable to parameter of type 'VueClass<Vue>'. 
Type 'typeof HomeComponent' is not assignable to type 'new (...args: any[]) => Vue'. 
    Type 'HomeComponent' is not assignable to type 'Vue'. 
    Types of property '$options' are incompatible. 
     Type 'ComponentOptions<HomeComponent, DefaultData<HomeComponent>, 
     DefaultMethods<HomeComponent>, Defaul...' is not assignable to type 'ComponentOptions<Vue, DefaultData<Vue>, DefaultMethods<Vue>, DefaultComputed, PropsDefinition<Rec...'. 
     Type 'HomeComponent' is not assignable to type 'Vue'. 

[AT-ローダー]で

ERROR:

@Component({ 
    template: require('./home.html'), 
}) 

私は、このように置き換えることを試みた:

@Component 

をしかし、私はエラーを得た:

ERROR in [at-loader] ./src/components/home/home.ts:7: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 HomeComponent'. 
    Property 'extend' is missing in type '<VC extends VueClass<Vue>>(target: VC) => VC'. 

だから私は完全に@Component

3行を削除しようとしました明らかに、コードはコンパイルされています

[at-loader] Ok、0.97秒。

が、その後プログラムは

[Vue warn]: Failed to mount component: template or render function not defined. 

found in 

---> <Anonymous> 
     <Root> 

がどのように使用して働くことができないVUE jsの@Component typescriptです2.6.1と?

答えて

4

私は同じ問題を抱えていたと私はそのエラーを取り除くことができた方法は私のtsconfig.jsonに

"strictFunctionTypes": false 

を追加する。これは、functions are checked

という方法が変更しました
関連する問題