首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在一个带有Vue的文件组件中使用TypeScript的类型?

如何在一个带有Vue的文件组件中使用TypeScript的类型?
EN

Stack Overflow用户
提问于 2019-04-05 16:12:38
回答 2查看 1.7K关注 0票数 1

我在试着利用TypeScript的好处,

安装ts-loadertypescript依赖项

我添加了tsconfig.json配置

代码语言:javascript
复制
// tsconfig.json
{
    "compilerOptions": {
      // this aligns with Vue's browser support
      "target": "es5",
      // this enables stricter inference for data properties on `this`
      "strict": true,
      // if using webpack 2+ or rollup, to leverage tree shaking:
      "module": "es2015",
      "moduleResolution": "node"
    }

}

但是,当试图编译下一个组件时,它会显示错误。

代码语言:javascript
复制
<script lang="ts">
import Vue from "vue";
import { mapState,mapGetters } from 'vuex'


export default Vue.extend({
    data() {
        return {
            number : 0
        }
    },
    methods:{
        // error void
        upCount() : void {
            this.$store.commit('increment');
        },
        downCount() : void{
            this.$store.commit('decrement');
        },
        upCountBy() : void {
            this.$store.commit('incrementBy',{count : this.number});
        }

    },
....

误差

模块解析失败:意外令牌(45:12)您可能需要一个适当的加载程序来处理此文件类型。

我正在使用VueJ与WebPack一起从一个Laravel和Laravel基础安装。我该怎么解决这个问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-05 16:35:54

当我开始使用Vue和TypeScript时,我一开始遇到了类似的问题,我花了很长时间才开始工作。尝试将其添加到webpack.config.js

代码语言:javascript
复制
...
    module: {
      rules: [
        {
          test: /\.tsx?$/,
          use: [{
            loader: 'ts-loader',
            options: {
              appendTsSuffixTo: [ /\.vue$/ ]
            }
          }],
          exclude: /node_modules/
        },
        // make sure vue-loader comes after ts-loader
        {
          test: /\.vue$/,
          loader: 'vue-loader'
        },
...
票数 2
EN

Stack Overflow用户

发布于 2019-04-19 20:42:13

试着翻转Connum建议答案的顺序。

代码语言:javascript
复制
module: {
      rules: [
                {
                    test: /\.vue$/,
                    use: 'vue-loader',
                },
                {
                    test: /\.ts$/,
                    exclude: /node_modules/,
                    use: [{ loader: 'ts-loader', options: { appendTsSuffixTo: [/\.vue$/] } }],
                },
              ]
}

为我工作过。你已经安装了虚拟装载机?

代码语言:javascript
复制
npm i -D ts-loader typescript vue-loader
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55539548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档