TS —(编译)—> JS —(运行)—> 浏览器

TS:强类型的 JS

TS 组件: class

vue-property-decorator

  1. <template>
  2. <div>
  3. <ul class="types">
  4. <li :class="type === '-' && 'selected'" @click="selectType('-')">支出</li>
  5. <li :class="type === '+' && 'selected'" @click="selectType('+')">收入</li>
  6. </ul>
  7. </div>
  8. </template>
  9. <scrpt lang="ts">
  10. import Vue from 'vue';
  11. import {Component, Prop} from 'vue-property-decorator';
  12. @Component
  13. export default class Types extends Vue {
  14. type:string = '-';
  15. @Prop(Number) num: number | undefined;
  16. selectType(type: string) {
  17. if (type !== '-' && type !== '+') {
  18. throw new Error('type is unknown');
  19. }
  20. this.type = type
  21. }
  22. }
  23. </scrpt>

JS 组件

  1. <template>
  2. <div>
  3. <ul class="types">
  4. <li :class="type === '-' && 'selected'" @click="selectType('-')">支出</li>
  5. <li :class="type === '+' && 'selected'" @click="selectType('+')">收入</li>
  6. </ul>
  7. </div>
  8. </template>
  9. <scrpt lang="js">
  10. export default {
  11. name: 'Types',
  12. data() {
  13. return {
  14. type: '-'
  15. }
  16. },
  17. props: ['num'],
  18. method: {
  19. selectType(type) {
  20. if (type !== '-' && type !== '+') {
  21. throw new Error('type is unknown')
  22. }
  23. this.type = type
  24. }
  25. }
  26. }
  27. </scrpt>