在Typescript Vue中使用mapGetters

时间:2020-10-15 17:54:20

标签: typescript vue.js vuex

我在这方面找不到直接的答案,而且我不太擅长TS。有人可以告诉我如何在Vue中转换这些计算的属性以用于Typescript文件吗?

  computed: {
      ...mapGetters({
         getLoggedInUserFirstName: "Common/getLoggedInUserFirstName",
         getLoggedInUserLastName: "Common/getLoggedInUserLastName"
      })
  }

预先感谢

1 个答案:

答案 0 :(得分:1)

根据@LOTUSMS的评论,他说他正在Vue文件中使用

好吧,您在这里有两个选择。如果您使用的是基于类的语法,也可以使用

@Component({})
export default class MyComponent extends Vue {
  ...
}

您可以执行以下操作:

@Component({
  computed: {
    ...mapGetters({
      getLoggedInUserFirstName: "Common/getLoggedInUserFirstName",
      getLoggedInUserLastName: "Common/getLoggedInUserLastName"
    })
  }
})
export default class MyComponent extends Vue {
  // if you can you can denote the type with:
  // public getLoggedInUserFirstName!: string;
  public getLoggedInUserFirstName!;

  public getLoggedInUserLastName!;
}

如果您使用扩展版本,则可以像以前一样简单地使用它:

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

export default Vue.extend({
  computed: {
    ...mapGetters({
      getLoggedInUserFirstName: "Common/getLoggedInUserFirstName",
      getLoggedInUserLastName: "Common/getLoggedInUserLastName"
    })
  }
})
</script>